diff --git a/poky/meta/recipes-devtools/bison/bison_3.6.4.bb b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb
index 0c877c3..f3d4d42 100644
--- a/poky/meta/recipes-devtools/bison/bison_3.6.4.bb
+++ b/poky/meta/recipes-devtools/bison/bison_3.6.4.bb
@@ -27,7 +27,7 @@
 inherit autotools gettext texinfo
 
 # The automatic m4 path detection gets confused, so force the right value
-acpaths = "-I ${S}/m4"
+acpaths = "-I ./m4"
 
 do_compile_prepend() {
 	for i in mfcalc calc++ rpcalc; do mkdir -p ${B}/examples/$i; done
diff --git a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb
similarity index 97%
rename from poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb
rename to poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb
index 29f14d9..e61ea9b 100644
--- a/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.6.1.bb
+++ b/poky/meta/recipes-devtools/btrfs-tools/btrfs-tools_5.7.bb
@@ -14,7 +14,7 @@
 DEPENDS_append_class-target = " udev"
 RDEPENDS_${PN} = "libgcc"
 
-SRCREV = "2a74d408f4b65d603e42f6e7b6b905ac81825fc9"
+SRCREV = "11acf45eea6dd81e891564967051e2bb10bd25f7"
 SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/kdave/btrfs-progs.git \
            file://0001-Add-a-possibility-to-specify-where-python-modules-ar.patch \
            "
diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb
index b2952ee..d91e42e 100644
--- a/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb
+++ b/poky/meta/recipes-devtools/cmake/cmake-native_3.17.3.bb
@@ -1,7 +1,7 @@
 require cmake.inc
 inherit native
 
-DEPENDS += "bzip2-replacement-native expat-native xz-native zlib-native curl-native ncurses-native"
+DEPENDS += "bzip2-replacement-native xz-native zlib-native curl-native ncurses-native"
 
 SRC_URI += "file://OEToolchainConfig.cmake \
             file://environment.d-cmake.sh \
@@ -21,6 +21,7 @@
     -DCMAKE_USE_SYSTEM_LIBRARY_LIBARCHIVE=0 \
     -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0 \
     -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 \
+    -DCMAKE_USE_SYSTEM_LIBRARY_EXPAT=0 \
     -DENABLE_ACL=0 -DHAVE_ACL_LIBACL_H=0 \
     -DHAVE_SYS_ACL_H=0 \
 "
diff --git a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
similarity index 95%
rename from poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb
rename to poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
index 969894e..c6d8963 100644
--- a/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.15.11.bb
+++ b/poky/meta/recipes-devtools/createrepo-c/createrepo-c_0.16.0.bb
@@ -8,7 +8,7 @@
            file://0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \
            "
 
-SRCREV = "ea3bcf302c1a071040e1a8b6ad77861c12a2ae99"
+SRCREV = "bac48ace91c51abe37792415e75452bbabd44d93"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg.inc b/poky/meta/recipes-devtools/dpkg/dpkg.inc
index 1c3c585..04fe85c 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg.inc
+++ b/poky/meta/recipes-devtools/dpkg/dpkg.inc
@@ -7,7 +7,7 @@
 RDEPENDS_${PN} = "${VIRTUAL-RUNTIME_update-alternatives} perl"
 RDEPENDS_${PN}_class-native = ""
 
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/d/dpkg/"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
 
 inherit autotools gettext perlnative pkgconfig perl-version update-alternatives
 
@@ -30,6 +30,18 @@
 PACKAGECONFIG = "liblzma"
 PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz"
 
+
+#autotools.bbclass default AUTOTOOLS_AUXDIR is ${S}, we need to under ${S}/build-aux
+AUTOTOOLS_AUXDIR = "${S}/build-aux"
+
+do_configure_prepend () {
+        mkdir -p ${AUTOTOOLS_AUXDIR}
+        # autotools_do_configure updates po/Makefile.in.in, we also need
+        # update dselect/po and scripts/po
+        cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/dselect/po/
+        cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/scripts/po/
+}
+
 do_install_append () {
 	if [ "${PN}" = "dpkg-native" ]; then
 		# update-alternatives doesn't have an offline mode
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch b/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
index 7c35407..ffe520c 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
+++ b/poky/meta/recipes-devtools/dpkg/dpkg/0001-build.c-ignore-return-of-1-from-tar-cf.patch
@@ -1,4 +1,4 @@
-From 450fece894fce750502be8accabfd88c585bda4c Mon Sep 17 00:00:00 2001
+From 15b081cc8bead80c493ab83369ecb3345a24a3dc Mon Sep 17 00:00:00 2001
 From: Paul Eggleton <paul.eggleton@linux.microsoft.com>
 Date: Tue, 16 Jun 2020 03:57:25 +0000
 Subject: [PATCH] build.c: ignore return of 1 from tar -cf
@@ -23,15 +23,16 @@
 Original patch by RP 2015/3/27, rebased by Paul Eggleton
 
 Signed-off-by: Paul Eggleton <paul.eggleton@microsoft.com>
+
 ---
  dpkg-deb/build.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c
-index a3d1912..1de7f9c 100644
+index 8436839cd..6b44a36f7 100644
 --- a/dpkg-deb/build.c
 +++ b/dpkg-deb/build.c
-@@ -427,6 +427,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
+@@ -434,6 +434,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
  {
    int pipe_filenames[2], pipe_tarball[2];
    pid_t pid_tar, pid_comp;
@@ -39,7 +40,7 @@
  
    /* Fork off a tar. We will feed it a list of filenames on stdin later. */
    m_pipe(pipe_filenames);
-@@ -477,7 +478,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
+@@ -486,7 +487,9 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder,
    /* All done, clean up wait for tar and <compress> to finish their job. */
    close(pipe_filenames[1]);
    subproc_reap(pid_comp, _("<compress> from tar -cf"), 0);
diff --git a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb
similarity index 81%
rename from poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb
rename to poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb
index c98a9e5..d97b69c 100644
--- a/poky/meta/recipes-devtools/dpkg/dpkg_1.20.0.bb
+++ b/poky/meta/recipes-devtools/dpkg/dpkg_1.20.5.bb
@@ -1,7 +1,7 @@
 require dpkg.inc
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = "${DEBIAN_MIRROR}/main/d/${BPN}/${BPN}_${PV}.tar.xz \
+SRC_URI = "git://salsa.debian.org/dpkg-team/dpkg.git;protocol=https \
            file://noman.patch \
            file://remove-tar-no-timestamp.patch \
            file://arch_pm.patch \
@@ -18,5 +18,6 @@
 
 SRC_URI_append_class-native = " file://0001-build.c-ignore-return-of-1-from-tar-cf.patch"
 
-SRC_URI[md5sum] = "f88f077236a3ff3decae3b25c989893d"
-SRC_URI[sha256sum] = "b633cc2b0e030efb61e11029d8a3fb1123f719864c9992da2e52b471c96d0900"
+SRCREV = "823a67d67538b1b403a32d1fef40e6e228265566"
+
+S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch
new file mode 100644
index 0000000..0e8cbad
--- /dev/null
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs/0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch
@@ -0,0 +1,55 @@
+From dcb36fd007ddb32d8c5cfcf5e9ddb3d713d65396 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 21 Jul 2020 09:43:03 +0800
+Subject: [PATCH] fix up check for hardlinks always false if inode > 0xFFFFFFFF
+
+Since commit [382ed4a1 e2fsck: use proper types for variables][1]
+applied, it used ext2_ino_t instead of ino_t for referencing inode
+numbers, but the type of is_hardlink's `ino' should not be instead,
+The ext2_ino_t is 32bit, if inode > 0xFFFFFFFF, its value will be
+truncated.
+
+Add a debug printf to show the value of inode, when it check for hardlink
+files, it will always return false if inode > 0xFFFFFFFF
+|--- a/misc/create_inode.c
+|+++ b/misc/create_inode.c
+|@@ -605,6 +605,7 @@ static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ext2_ino_t ino)
+| {
+|        int i;
+|
+|+       printf("%s %d, %lX, %lX\n", __FUNCTION__, __LINE__, hdlinks->hdl[i].src_ino, ino);
+|        for (i = 0; i < hdlinks->count; i++) {
+|                if (hdlinks->hdl[i].src_dev == dev &&
+|                    hdlinks->hdl[i].src_ino == ino)
+
+Here is debug message:
+is_hardlink 608, 2913DB886, 913DB886
+
+The length of ext2_ino_t is 32bit (typedef __u32 __bitwise ext2_ino_t;),
+and ino_t is 64bit on 64bit system (such as x86-64), recover `ino' to ino_t.
+
+[1] https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=382ed4a1c2b60acb9db7631e86dda207bde6076e
+
+Upstream-Status: Submitted [https://github.com/tytso/e2fsprogs/pull/48]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ misc/create_inode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/misc/create_inode.c b/misc/create_inode.c
+index e8d1df6b..837f3875 100644
+--- a/misc/create_inode.c
++++ b/misc/create_inode.c
+@@ -601,7 +601,7 @@ out:
+ 	return err;
+ }
+ 
+-static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ext2_ino_t ino)
++static int is_hardlink(struct hdlinks_s *hdlinks, dev_t dev, ino_t ino)
+ {
+ 	int i;
+ 
+-- 
+2.18.2
+
diff --git a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
index 4ad5b03..1505476 100644
--- a/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
+++ b/poky/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.45.6.bb
@@ -6,6 +6,7 @@
            file://mkdir_p.patch \
            file://0001-configure.ac-correct-AM_GNU_GETTEXT.patch \
            file://0001-intl-do-not-try-to-use-gettext-defines-that-no-longe.patch \
+           file://0001-fix-up-check-for-hardlinks-always-false-if-inode-0xF.patch \
            "
 
 SRC_URI_append_class-native = " file://e2fsprogs-fix-missing-check-for-permission-denied.patch \
diff --git a/poky/meta/recipes-devtools/flex/flex/check-funcs.patch b/poky/meta/recipes-devtools/flex/flex/check-funcs.patch
new file mode 100644
index 0000000..037ca81
--- /dev/null
+++ b/poky/meta/recipes-devtools/flex/flex/check-funcs.patch
@@ -0,0 +1,79 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From c42de062bbdc7c31d7181c10a74202d493280ada Mon Sep 17 00:00:00 2001
+From: Explorer09 <explorer09@gmail.com>
+Date: Tue, 27 Feb 2018 09:10:12 +0800
+Subject: [PATCH] build: Move dnl comments out of AC_CHECK_FUNCS
+
+Due to a bug, autoheader (2.69) will treat M4 dnl comments in a quoted
+argument of AC_CHECK_FUNCS as function tokens and generate a lot of
+redundant and useless HAVE_* macros in config.h.in.
+(Examples: HAVE_DNL, HAVE_AVAILABLE_, HAVE_BY)
+
+It seems to be this commit dbb4e94dc7bacbcfd4acef4f085ef752fe1aa03f of
+mine that revealed this autoheader bug, and the affected config.h.in
+had been shipped within flex-2.6.4 release tarball.
+
+I have reported the autoheader bug here:
+<https://lists.gnu.org/archive/html/bug-autoconf/2018-02/msg00005.html>
+
+As a workaround, let's move comments out of AC_CHECK_FUNCS.
+
+Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
+---
+ configure.ac | 29 +++++++++++++----------------
+ 1 file changed, 13 insertions(+), 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 55e774b0..d0f3b7da 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -166,6 +166,7 @@ strtol dnl
+ AC_CHECK_FUNCS([dnl
+ pow dnl           Used only by "examples/manual/expr"
+ setlocale dnl     Needed only if NLS is enabled
++reallocarr dnl    NetBSD function. Use reallocarray if not available.
+ reallocarray dnl  OpenBSD function. We have replacement if not available.
+ ])
+ 
+diff --git a/configure.ac b/configure.ac
+index 3c977a4e..9c53590f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -158,22 +158,19 @@ AC_FUNC_REALLOC
+ AS_IF([test "$cross_compiling" = yes],
+    AC_MSG_WARN([result $ac_cv_func_realloc_0_nonnull guessed because of cross compilation]))
+ 
+-AC_CHECK_FUNCS([dup2 dnl
+-memset dnl
+-regcomp dnl
+-strcasecmp dnl
+-strchr dnl
+-strdup dnl
+-strtol dnl
+-], [], [AC_MSG_ERROR(required library function not found on your system)])
+-
+-# Optional library functions
+-AC_CHECK_FUNCS([dnl
+-pow dnl           Used only by "examples/manual/expr"
+-setlocale dnl     Needed only if NLS is enabled
+-reallocarr dnl    NetBSD function. Use reallocarray if not available.
+-reallocarray dnl  OpenBSD function. We have replacement if not available.
+-])
++dnl Autoheader (<= 2.69) bug: "dnl" comments in a quoted argument of
++dnl AC_CHECK_FUNCS will expand wierdly in config.h.in.
++dnl (https://lists.gnu.org/archive/html/bug-autoconf/2018-02/msg00005.html)
++
++AC_CHECK_FUNCS([dup2 memset regcomp strcasecmp strchr strdup strtol], [],
++  [AC_MSG_ERROR(required library function not found on your system)])
++
++# Optional library functions:
++# pow - Used only by "examples/manual/expr".
++# setlocale - Needed only if NLS is enabled.
++# reallocarr - NetBSD function. Use reallocarray if not available.
++# reallocarray - OpenBSD function. We have replacement if not available.
++AC_CHECK_FUNCS([pow setlocale reallocarr reallocarray])
+ 
+ AC_CONFIG_FILES(
+ Makefile
diff --git a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
index 43b2547..3d57572 100644
--- a/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
+++ b/poky/meta/recipes-devtools/flex/flex_2.6.4.bb
@@ -15,6 +15,7 @@
            file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
            ${@bb.utils.contains('PTEST_ENABLED', '1', '', 'file://disable-tests.patch', d)} \
            file://0001-build-AC_USE_SYSTEM_EXTENSIONS-in-configure.ac.patch \
+           file://check-funcs.patch \
            "
 
 SRC_URI[md5sum] = "2882e3179748cc9f9c23ec593d6adc8d"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc
index a3de91a..5f31030 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-10.1.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1.inc
@@ -66,6 +66,10 @@
            file://0036-Enable-CET-in-cross-compiler-if-possible.patch \
            file://0037-mingw32-Enable-operation_not_supported.patch \
            file://0038-libatomic-Do-not-enforce-march-on-aarch64.patch \
+           file://0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch \
+           file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \
+           file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \
+           file://pr96130.patch \
 "
 SRC_URI[sha256sum] = "b6898a23844b656f1b68691c5c012036c2e694ac4b53a8918d4712ad876e7ea2"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch
new file mode 100644
index 0000000..73de4c7
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0001-aarch64-New-Straight-Line-Speculation-SLS-mitigation.patch
@@ -0,0 +1,202 @@
+CVE: CVE-2020-13844
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 1ff243934ac443b5f58cd02a5012ce58ecc31fb2 Mon Sep 17 00:00:00 2001
+From: Matthew Malcomson <matthew.malcomson@arm.com>
+Date: Thu, 9 Jul 2020 09:11:58 +0100
+Subject: [PATCH 1/3] aarch64: New Straight Line Speculation (SLS) mitigation
+ flags
+
+Here we introduce the flags that will be used for straight line speculation.
+
+The new flag introduced is `-mharden-sls=`.
+This flag can take arguments of `none`, `all`, or a comma seperated list of one
+or more of `retbr` or `blr`.
+`none` indicates no special mitigation of the straight line speculation
+vulnerability.
+`all` requests all mitigations currently implemented.
+`retbr` requests that the RET and BR instructions have a speculation barrier
+inserted after them.
+`blr` requests that BLR instructions are replaced by a BL to a function stub
+using a BR with a speculation barrier after it.
+
+Setting this on a per-function basis using attributes or the like is not
+enabled, but may be in the future.
+
+gcc/ChangeLog:
+
+2020-06-02  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+	* config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p):
+	New.
+	(aarch64_harden_sls_blr_p): New.
+	* config/aarch64/aarch64.c (enum aarch64_sls_hardening_type):
+	New.
+	(aarch64_harden_sls_retbr_p): New.
+	(aarch64_harden_sls_blr_p): New.
+	(aarch64_validate_sls_mitigation): New.
+	(aarch64_override_options): Parse options for SLS mitigation.
+	* config/aarch64/aarch64.opt (-mharden-sls): New option.
+	* doc/invoke.texi: Document new option.
+---
+ gcc/config/aarch64/aarch64-protos.h |  3 ++
+ gcc/config/aarch64/aarch64.c        | 76 +++++++++++++++++++++++++++++++++++++
+ gcc/config/aarch64/aarch64.opt      |  4 ++
+ gcc/doc/invoke.texi                 | 12 ++++++
+ 4 files changed, 95 insertions(+)
+
+diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
+index 723d9ba..eb5f4b4 100644
+--- a/gcc/config/aarch64/aarch64-protos.h
++++ b/gcc/config/aarch64/aarch64-protos.h
+@@ -781,4 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
+ 
+ tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
+ 
++extern bool aarch64_harden_sls_retbr_p (void);
++extern bool aarch64_harden_sls_blr_p (void);
++
+ #endif /* GCC_AARCH64_PROTOS_H */
+diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
+index b86434a..437a9cf 100644
+--- a/gcc/config/aarch64/aarch64.c
++++ b/gcc/config/aarch64/aarch64.c
+@@ -14494,6 +14494,79 @@ aarch64_validate_mcpu (const char *str, const struct processor **res,
+   return false;
+ }
+ 
++/* Straight line speculation indicators.  */
++enum aarch64_sls_hardening_type
++{
++  SLS_NONE = 0,
++  SLS_RETBR = 1,
++  SLS_BLR = 2,
++  SLS_ALL = 3,
++};
++static enum aarch64_sls_hardening_type aarch64_sls_hardening;
++
++/* Return whether we should mitigatate Straight Line Speculation for the RET
++   and BR instructions.  */
++bool
++aarch64_harden_sls_retbr_p (void)
++{
++  return aarch64_sls_hardening & SLS_RETBR;
++}
++
++/* Return whether we should mitigatate Straight Line Speculation for the BLR
++   instruction.  */
++bool
++aarch64_harden_sls_blr_p (void)
++{
++  return aarch64_sls_hardening & SLS_BLR;
++}
++
++/* As of yet we only allow setting these options globally, in the future we may
++   allow setting them per function.  */
++static void
++aarch64_validate_sls_mitigation (const char *const_str)
++{
++  char *token_save = NULL;
++  char *str = NULL;
++
++  if (strcmp (const_str, "none") == 0)
++    {
++      aarch64_sls_hardening = SLS_NONE;
++      return;
++    }
++  if (strcmp (const_str, "all") == 0)
++    {
++      aarch64_sls_hardening = SLS_ALL;
++      return;
++    }
++
++  char *str_root = xstrdup (const_str);
++  str = strtok_r (str_root, ",", &token_save);
++  if (!str)
++    error ("invalid argument given to %<-mharden-sls=%>");
++
++  int temp = SLS_NONE;
++  while (str)
++    {
++      if (strcmp (str, "blr") == 0)
++	temp |= SLS_BLR;
++      else if (strcmp (str, "retbr") == 0)
++	temp |= SLS_RETBR;
++      else if (strcmp (str, "none") == 0 || strcmp (str, "all") == 0)
++	{
++	  error ("%<%s%> must be by itself for %<-mharden-sls=%>", str);
++	  break;
++	}
++      else
++	{
++	  error ("invalid argument %<%s%> for %<-mharden-sls=%>", str);
++	  break;
++	}
++      str = strtok_r (NULL, ",", &token_save);
++    }
++  aarch64_sls_hardening = (aarch64_sls_hardening_type) temp;
++  free (str_root);
++}
++
+ /* Parses CONST_STR for branch protection features specified in
+    aarch64_branch_protect_types, and set any global variables required.  Returns
+    the parsing result and assigns LAST_STR to the last processed token from
+@@ -14738,6 +14811,9 @@ aarch64_override_options (void)
+   selected_arch = NULL;
+   selected_tune = NULL;
+ 
++  if (aarch64_harden_sls_string)
++    aarch64_validate_sls_mitigation (aarch64_harden_sls_string);
++
+   if (aarch64_branch_protection_string)
+     aarch64_validate_mbranch_protection (aarch64_branch_protection_string);
+ 
+diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
+index d99d14c..5170361 100644
+--- a/gcc/config/aarch64/aarch64.opt
++++ b/gcc/config/aarch64/aarch64.opt
+@@ -71,6 +71,10 @@ mgeneral-regs-only
+ Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save
+ Generate code which uses only the general registers.
+ 
++mharden-sls=
++Target RejectNegative Joined Var(aarch64_harden_sls_string)
++Generate code to mitigate against straight line speculation.
++
+ mfix-cortex-a53-835769
+ Target Report Var(aarch64_fix_a53_err835769) Init(2) Save
+ Workaround for ARM Cortex-A53 Erratum number 835769.
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index a2794a6..bd5b77a 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -696,6 +696,7 @@ Objective-C and Objective-C++ Dialects}.
+ -msign-return-address=@var{scope} @gol
+ -mbranch-protection=@var{none}|@var{standard}|@var{pac-ret}[+@var{leaf}
+ +@var{b-key}]|@var{bti} @gol
++-mharden-sls=@var{opts} @gol
+ -march=@var{name}  -mcpu=@var{name}  -mtune=@var{name}  @gol
+ -moverride=@var{string}  -mverbose-cost-dump @gol
+ -mstack-protector-guard=@var{guard} -mstack-protector-guard-reg=@var{sysreg} @gol
+@@ -17065,6 +17066,17 @@ functions.  The optional argument @samp{b-key} can be used to sign the functions
+ with the B-key instead of the A-key.
+ @samp{bti} turns on branch target identification mechanism.
+ 
++@item -mharden-sls=@var{opts}
++@opindex mharden-sls
++Enable compiler hardening against straight line speculation (SLS).
++@var{opts} is a comma-separated list of the following options:
++@table @samp
++@item retbr
++@item blr
++@end table
++In addition, @samp{-mharden-sls=all} enables all SLS hardening while
++@samp{-mharden-sls=none} disables all SLS hardening.
++
+ @item -msve-vector-bits=@var{bits}
+ @opindex msve-vector-bits
+ Specify the number of bits in an SVE vector register.  This option only has
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch
new file mode 100644
index 0000000..823cc8b
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch
@@ -0,0 +1,607 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From b1204d16e1ec96a4aa89e44de8990e2499ffdb22 Mon Sep 17 00:00:00 2001
+From: Matthew Malcomson <matthew.malcomson@arm.com>
+Date: Thu, 9 Jul 2020 09:11:59 +0100
+Subject: [PATCH 2/3] aarch64: Introduce SLS mitigation for RET and BR
+ instructions
+
+Instructions following RET or BR are not necessarily executed.  In order
+to avoid speculation past RET and BR we can simply append a speculation
+barrier.
+
+Since these speculation barriers will not be architecturally executed,
+they are not expected to add a high performance penalty.
+
+The speculation barrier is to be SB when targeting architectures which
+have this enabled, and DSB SY + ISB otherwise.
+
+We add tests for each of the cases where such an instruction was seen.
+
+This is implemented by modifying each machine description pattern that
+emits either a RET or a BR instruction.  We choose not to use something
+like `TARGET_ASM_FUNCTION_EPILOGUE` since it does not affect the
+`indirect_jump`, `jump`, `sibcall_insn` and `sibcall_value_insn`
+patterns and we find it preferable to implement the functionality in the
+same way for every pattern.
+
+There is one particular case which is slightly tricky.  The
+implementation of TARGET_ASM_TRAMPOLINE_TEMPLATE uses a BR which needs
+to be mitigated against.  The trampoline template is used *once* per
+compilation unit, and the TRAMPOLINE_SIZE is exposed to the user via the
+builtin macro __LIBGCC_TRAMPOLINE_SIZE__.
+In the future we may implement function specific attributes to turn on
+and off hardening on a per-function basis.
+The fixed nature of the trampoline described above implies it will be
+safer to ensure this speculation barrier is always used.
+
+Testing:
+  Bootstrap and regtest done on aarch64-none-linux
+  Used a temporary hack(1) to use these options on every test in the
+  testsuite and a script to check that the output never emitted an
+  unmitigated RET or BR.
+
+1) Temporary hack was a change to the testsuite to always use
+`-save-temps` and run a script on the assembly output of those
+compilations which produced one to ensure every RET or BR is immediately
+followed by a speculation barrier.
+
+gcc/ChangeLog:
+
+	* config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New.
+	* config/aarch64/aarch64.c (aarch64_output_casesi): Emit
+	speculation barrier after BR instruction if needs be.
+	(aarch64_trampoline_init): Handle ptr_mode value & adjust size
+	of code copied.
+	(aarch64_sls_barrier): New.
+	(aarch64_asm_trampoline_template): Add needed barriers.
+	* config/aarch64/aarch64.h (AARCH64_ISA_SB): New.
+	(TARGET_SB): New.
+	(TRAMPOLINE_SIZE): Account for barrier.
+	* config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch,
+	simple_return, *do_return, *sibcall_insn, *sibcall_value_insn):
+	Emit barrier if needs be, also account for possible barrier using
+	"sls_length" attribute.
+	(sls_length): New attribute.
+	(length): Determine default using any non-default sls_length
+	value.
+
+gcc/testsuite/ChangeLog:
+
+	* gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c: New test.
+	* gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c:
+	New test.
+	* gcc.target/aarch64/sls-mitigation/sls-mitigation.exp: New file.
+	* lib/target-supports.exp (check_effective_target_aarch64_asm_sb_ok):
+	New proc.
+---
+ gcc/config/aarch64/aarch64-protos.h                |   1 +
+ gcc/config/aarch64/aarch64.c                       |  41 ++++++-
+ gcc/config/aarch64/aarch64.h                       |  10 +-
+ gcc/config/aarch64/aarch64.md                      |  76 +++++++++----
+ .../aarch64/sls-mitigation/sls-miti-retbr-pacret.c |  21 ++++
+ .../aarch64/sls-mitigation/sls-miti-retbr.c        | 119 +++++++++++++++++++++
+ .../aarch64/sls-mitigation/sls-mitigation.exp      |  73 +++++++++++++
+ gcc/testsuite/lib/target-supports.exp              |   2 +-
+ 8 files changed, 318 insertions(+), 25 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
+
+diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
+index eb5f4b4..ee0ffde 100644
+--- a/gcc/config/aarch64/aarch64-protos.h
++++ b/gcc/config/aarch64/aarch64-protos.h
+@@ -781,6 +781,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
+ 
+ tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
+ 
++const char *aarch64_sls_barrier (int);
+ extern bool aarch64_harden_sls_retbr_p (void);
+ extern bool aarch64_harden_sls_blr_p (void);
+ 
+diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
+index 437a9cf..44e3d1f 100644
+--- a/gcc/config/aarch64/aarch64.c
++++ b/gcc/config/aarch64/aarch64.c
+@@ -10852,8 +10852,8 @@ aarch64_return_addr (int count, rtx frame ATTRIBUTE_UNUSED)
+ static void
+ aarch64_asm_trampoline_template (FILE *f)
+ {
+-  int offset1 = 16;
+-  int offset2 = 20;
++  int offset1 = 24;
++  int offset2 = 28;
+ 
+   if (aarch64_bti_enabled ())
+     {
+@@ -10876,6 +10876,17 @@ aarch64_asm_trampoline_template (FILE *f)
+     }
+   asm_fprintf (f, "\tbr\t%s\n", reg_names [IP1_REGNUM]);
+ 
++  /* We always emit a speculation barrier.
++     This is because the same trampoline template is used for every nested
++     function.  Since nested functions are not particularly common or
++     performant we don't worry too much about the extra instructions to copy
++     around.
++     This is not yet a problem, since we have not yet implemented function
++     specific attributes to choose between hardening against straight line
++     speculation or not, but such function specific attributes are likely to
++     happen in the future.  */
++  asm_fprintf (f, "\tdsb\tsy\n\tisb\n");
++
+   /* The trampoline needs an extra padding instruction.  In case if BTI is
+      enabled the padding instruction is replaced by the BTI instruction at
+      the beginning.  */
+@@ -10890,10 +10901,14 @@ static void
+ aarch64_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
+ {
+   rtx fnaddr, mem, a_tramp;
+-  const int tramp_code_sz = 16;
++  const int tramp_code_sz = 24;
+ 
+   /* Don't need to copy the trailing D-words, we fill those in below.  */
+-  emit_block_move (m_tramp, assemble_trampoline_template (),
++  /* We create our own memory address in Pmode so that `emit_block_move` can
++     use parts of the backend which expect Pmode addresses.  */
++  rtx temp = convert_memory_address (Pmode, XEXP (m_tramp, 0));
++  emit_block_move (gen_rtx_MEM (BLKmode, temp),
++		   assemble_trampoline_template (),
+ 		   GEN_INT (tramp_code_sz), BLOCK_OP_NORMAL);
+   mem = adjust_address (m_tramp, ptr_mode, tramp_code_sz);
+   fnaddr = XEXP (DECL_RTL (fndecl), 0);
+@@ -11084,6 +11099,8 @@ aarch64_output_casesi (rtx *operands)
+   output_asm_insn (buf, operands);
+   output_asm_insn (patterns[index][1], operands);
+   output_asm_insn ("br\t%3", operands);
++  output_asm_insn (aarch64_sls_barrier (aarch64_harden_sls_retbr_p ()),
++		   operands);
+   assemble_label (asm_out_file, label);
+   return "";
+ }
+@@ -22924,6 +22941,22 @@ aarch64_file_end_indicate_exec_stack ()
+ #undef GNU_PROPERTY_AARCH64_FEATURE_1_BTI
+ #undef GNU_PROPERTY_AARCH64_FEATURE_1_AND
+ 
++/* Helper function for straight line speculation.
++   Return what barrier should be emitted for straight line speculation
++   mitigation.
++   When not mitigating against straight line speculation this function returns
++   an empty string.
++   When mitigating against straight line speculation, use:
++   * SB when the v8.5-A SB extension is enabled.
++   * DSB+ISB otherwise.  */
++const char *
++aarch64_sls_barrier (int mitigation_required)
++{
++  return mitigation_required
++    ? (TARGET_SB ? "sb" : "dsb\tsy\n\tisb")
++    : "";
++}
++
+ /* Target-specific selftests.  */
+ 
+ #if CHECKING_P
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 1ce23c6..c21015f 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -281,6 +281,7 @@ extern unsigned aarch64_architecture_version;
+ #define AARCH64_ISA_F32MM	   (aarch64_isa_flags & AARCH64_FL_F32MM)
+ #define AARCH64_ISA_F64MM	   (aarch64_isa_flags & AARCH64_FL_F64MM)
+ #define AARCH64_ISA_BF16	   (aarch64_isa_flags & AARCH64_FL_BF16)
++#define AARCH64_ISA_SB  	   (aarch64_isa_flags & AARCH64_FL_SB)
+ 
+ /* Crypto is an optional extension to AdvSIMD.  */
+ #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
+@@ -378,6 +379,9 @@ extern unsigned aarch64_architecture_version;
+ #define TARGET_FIX_ERR_A53_835769_DEFAULT 1
+ #endif
+ 
++/* SB instruction is enabled through +sb.  */
++#define TARGET_SB (AARCH64_ISA_SB)
++
+ /* Apply the workaround for Cortex-A53 erratum 835769.  */
+ #define TARGET_FIX_ERR_A53_835769	\
+   ((aarch64_fix_a53_err835769 == 2)	\
+@@ -1058,8 +1062,10 @@ typedef struct
+ 
+ #define RETURN_ADDR_RTX aarch64_return_addr
+ 
+-/* BTI c + 3 insns + 2 pointer-sized entries.  */
+-#define TRAMPOLINE_SIZE	(TARGET_ILP32 ? 24 : 32)
++/* BTI c + 3 insns
++   + sls barrier of DSB + ISB.
++   + 2 pointer-sized entries.  */
++#define TRAMPOLINE_SIZE	(24 + (TARGET_ILP32 ? 8 : 16))
+ 
+ /* Trampolines contain dwords, so must be dword aligned.  */
+ #define TRAMPOLINE_ALIGNMENT 64
+diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
+index 8c8be3c..dda04ee 100644
+--- a/gcc/config/aarch64/aarch64.md
++++ b/gcc/config/aarch64/aarch64.md
+@@ -407,10 +407,25 @@
+ ;; Attribute that specifies whether the alternative uses MOVPRFX.
+ (define_attr "movprfx" "no,yes" (const_string "no"))
+ 
++;; Attribute to specify that an alternative has the length of a single
++;; instruction plus a speculation barrier.
++(define_attr "sls_length" "none,retbr,casesi" (const_string "none"))
++
+ (define_attr "length" ""
+   (cond [(eq_attr "movprfx" "yes")
+            (const_int 8)
+-        ] (const_int 4)))
++
++	 (eq_attr "sls_length" "retbr")
++	   (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 4)
++		  (match_test "TARGET_SB") (const_int 8)]
++		 (const_int 12))
++
++	 (eq_attr "sls_length" "casesi")
++	   (cond [(match_test "!aarch64_harden_sls_retbr_p ()") (const_int 16)
++		  (match_test "TARGET_SB") (const_int 20)]
++		 (const_int 24))
++	]
++	  (const_int 4)))
+ 
+ ;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has
+ ;; no predicated insns.
+@@ -447,8 +462,12 @@
+ (define_insn "indirect_jump"
+   [(set (pc) (match_operand:DI 0 "register_operand" "r"))]
+   ""
+-  "br\\t%0"
+-  [(set_attr "type" "branch")]
++  {
++    output_asm_insn ("br\\t%0", operands);
++    return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++  }
++  [(set_attr "type" "branch")
++   (set_attr "sls_length" "retbr")]
+ )
+ 
+ (define_insn "jump"
+@@ -765,7 +784,7 @@
+   "*
+   return aarch64_output_casesi (operands);
+   "
+-  [(set_attr "length" "16")
++  [(set_attr "sls_length" "casesi")
+    (set_attr "type" "branch")]
+ )
+ 
+@@ -844,18 +863,23 @@
+   [(return)]
+   ""
+   {
++    const char *ret = NULL;
+     if (aarch64_return_address_signing_enabled ()
+ 	&& TARGET_ARMV8_3
+ 	&& !crtl->calls_eh_return)
+       {
+ 	if (aarch64_ra_sign_key == AARCH64_KEY_B)
+-	  return "retab";
++	  ret = "retab";
+ 	else
+-	  return "retaa";
++	  ret = "retaa";
+       }
+-    return "ret";
++    else
++      ret = "ret";
++    output_asm_insn (ret, operands);
++    return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
+   }
+-  [(set_attr "type" "branch")]
++  [(set_attr "type" "branch")
++   (set_attr "sls_length" "retbr")]
+ )
+ 
+ (define_expand "return"
+@@ -867,8 +891,12 @@
+ (define_insn "simple_return"
+   [(simple_return)]
+   ""
+-  "ret"
+-  [(set_attr "type" "branch")]
++  {
++    output_asm_insn ("ret", operands);
++    return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++  }
++  [(set_attr "type" "branch")
++   (set_attr "sls_length" "retbr")]
+ )
+ 
+ (define_insn "*cb<optab><mode>1"
+@@ -1066,10 +1094,16 @@
+    (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
+    (return)]
+   "SIBLING_CALL_P (insn)"
+-  "@
+-   br\\t%0
+-   b\\t%c0"
+-  [(set_attr "type" "branch, branch")]
++  {
++    if (which_alternative == 0)
++      {
++	output_asm_insn ("br\\t%0", operands);
++	return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++      }
++    return "b\\t%c0";
++  }
++  [(set_attr "type" "branch, branch")
++   (set_attr "sls_length" "retbr,none")]
+ )
+ 
+ (define_insn "*sibcall_value_insn"
+@@ -1080,10 +1114,16 @@
+    (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
+    (return)]
+   "SIBLING_CALL_P (insn)"
+-  "@
+-   br\\t%1
+-   b\\t%c1"
+-  [(set_attr "type" "branch, branch")]
++  {
++    if (which_alternative == 0)
++      {
++	output_asm_insn ("br\\t%1", operands);
++	return aarch64_sls_barrier (aarch64_harden_sls_retbr_p ());
++      }
++    return "b\\t%c1";
++  }
++  [(set_attr "type" "branch, branch")
++   (set_attr "sls_length" "retbr,none")]
+ )
+ 
+ ;; Call subroutine returning any type.
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
+new file mode 100644
+index 0000000..fa1887a
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr-pacret.c
+@@ -0,0 +1,21 @@
++/* Avoid ILP32 since pacret is only available for LP64 */
++/* { dg-do compile { target { ! ilp32 } } } */
++/* { dg-additional-options "-mharden-sls=retbr -mbranch-protection=pac-ret -march=armv8.3-a" } */
++
++/* Testing the do_return pattern for retaa and retab.  */
++long retbr_subcall(void);
++long retbr_do_return_retaa(void)
++{
++    return retbr_subcall()+1;
++}
++
++__attribute__((target("branch-protection=pac-ret+b-key")))
++long retbr_do_return_retab(void)
++{
++    return retbr_subcall()+1;
++}
++
++/* Ensure there are no BR or RET instructions which are not directly followed
++   by a speculation barrier.  */
++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb)} } } */
++/* { dg-final { scan-assembler-not {ret\t} } } */
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
+new file mode 100644
+index 0000000..76b8d03
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-retbr.c
+@@ -0,0 +1,119 @@
++/* We ensure that -Wpedantic is off since it complains about the trampolines
++   we explicitly want to test.  */
++/* { dg-additional-options "-mharden-sls=retbr -Wno-pedantic " } */
++/*
++   Ensure that the SLS hardening of RET and BR leaves no unprotected RET/BR
++   instructions.
++  */
++typedef int (foo) (int, int);
++typedef void (bar) (int, int);
++struct sls_testclass {
++    foo *x;
++    bar *y;
++    int left;
++    int right;
++};
++
++int
++retbr_sibcall_value_insn (struct sls_testclass x)
++{
++  return x.x(x.left, x.right);
++}
++
++void
++retbr_sibcall_insn (struct sls_testclass x)
++{
++  x.y(x.left, x.right);
++}
++
++/* Aim to test two different returns.
++   One that introduces a tail call in the middle of the function, and one that
++   has a normal return.  */
++int
++retbr_multiple_returns (struct sls_testclass x)
++{
++  int temp;
++  if (x.left % 10)
++    return x.x(x.left, 100);
++  else if (x.right % 20)
++    {
++      return x.x(x.left * x.right, 100);
++    }
++  temp = x.left % x.right;
++  temp *= 100;
++  temp /= 2;
++  return temp % 3;
++}
++
++void
++retbr_multiple_returns_void (struct sls_testclass x)
++{
++  if (x.left % 10)
++    {
++      x.y(x.left, 100);
++    }
++  else if (x.right % 20)
++    {
++      x.y(x.left * x.right, 100);
++    }
++  return;
++}
++
++/* Testing the casesi jump via register.  */
++__attribute__ ((optimize ("Os")))
++int
++retbr_casesi_dispatch (struct sls_testclass x)
++{
++  switch (x.left)
++    {
++    case -5:
++      return -2;
++    case -3:
++      return -1;
++    case 0:
++      return 0;
++    case 3:
++      return 1;
++    case 5:
++      break;
++    default:
++      __builtin_unreachable ();
++    }
++  return x.right;
++}
++
++/* Testing the BR in trampolines is mitigated against.  */
++void f1 (void *);
++void f3 (void *, void (*)(void *));
++void f2 (void *);
++
++int
++retbr_trampolines (void *a, int b)
++{
++  if (!b)
++    {
++      f1 (a);
++      return 1;
++    }
++  if (b)
++    {
++      void retbr_tramp_internal (void *c)
++      {
++	if (c == a)
++	  f2 (c);
++      }
++      f3 (a, retbr_tramp_internal);
++    }
++  return 0;
++}
++
++/* Testing the indirect_jump pattern.  */
++void
++retbr_indirect_jump (int *buf)
++{
++  __builtin_longjmp(buf, 1);
++}
++
++/* Ensure there are no BR or RET instructions which are not directly followed
++   by a speculation barrier.  */
++/* { dg-final { scan-assembler-not {\t(br|ret|retaa|retab)\tx[0-9][0-9]?\n\t(?!dsb\tsy\n\tisb|sb)} } } */
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
+new file mode 100644
+index 0000000..8122503
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-mitigation.exp
+@@ -0,0 +1,73 @@
++#  Regression driver for SLS mitigation on AArch64.
++#  Copyright (C) 2020 Free Software Foundation, Inc.
++#  Contributed by ARM Ltd.
++#
++#  This file is part of GCC.
++#
++#  GCC is free software; you can redistribute it and/or modify it
++#  under the terms of the GNU General Public License as published by
++#  the Free Software Foundation; either version 3, or (at your option)
++#  any later version.
++#
++#  GCC is distributed in the hope that it will be useful, but
++#  WITHOUT ANY WARRANTY; without even the implied warranty of
++#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++#  General Public License for more details.
++#
++#  You should have received a copy of the GNU General Public License
++#  along with GCC; see the file COPYING3.  If not see
++#  <http://www.gnu.org/licenses/>.  */
++
++# Exit immediately if this isn't an AArch64 target.
++if {![istarget aarch64*-*-*] } then {
++  return
++}
++
++# Load support procs.
++load_lib gcc-dg.exp
++load_lib torture-options.exp
++
++# If a testcase doesn't have special options, use these.
++global DEFAULT_CFLAGS
++if ![info exists DEFAULT_CFLAGS] then {
++    set DEFAULT_CFLAGS " "
++}
++
++# Initialize `dg'.
++dg-init
++torture-init
++
++# Use different architectures as well as the normal optimisation options.
++# (i.e. use both SB and DSB+ISB barriers).
++
++set save-dg-do-what-default ${dg-do-what-default}
++# Main loop.
++# Run with torture tests (i.e. a bunch of different optimisation levels) just
++# to increase test coverage.
++set dg-do-what-default assemble
++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
++	"-save-temps" $DEFAULT_CFLAGS
++
++# Run the same tests but this time with SB extension.
++# Since not all supported assemblers will support that extension we decide
++# whether to assemble or just compile based on whether the extension is
++# supported for the available assembler.
++
++set templist {}
++foreach x $DG_TORTURE_OPTIONS {
++  lappend templist "$x -march=armv8.3-a+sb "
++  lappend templist "$x -march=armv8-a+sb "
++}
++set-torture-options $templist
++if { [check_effective_target_aarch64_asm_sb_ok] } {
++    set dg-do-what-default assemble
++} else {
++    set dg-do-what-default compile
++}
++gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
++	"-save-temps" $DEFAULT_CFLAGS
++set dg-do-what-default ${save-dg-do-what-default}
++
++# All done.
++torture-finish
++dg-finish
+diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
+index 8a186dd..9d2e093 100644
+--- a/gcc/testsuite/lib/target-supports.exp
++++ b/gcc/testsuite/lib/target-supports.exp
+@@ -9432,7 +9432,7 @@ proc check_effective_target_aarch64_tiny { } {
+ # various architecture extensions via the .arch_extension pseudo-op.
+ 
+ foreach { aarch64_ext } { "fp" "simd" "crypto" "crc" "lse" "dotprod" "sve"
+-			  "i8mm" "f32mm" "f64mm" "bf16" } {
++			  "i8mm" "f32mm" "f64mm" "bf16" "sb" } {
+     eval [string map [list FUNC $aarch64_ext] {
+ 	proc check_effective_target_aarch64_asm_FUNC_ok { } {
+ 	  if { [istarget aarch64*-*-*] } {
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch
new file mode 100644
index 0000000..716a367
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch
@@ -0,0 +1,658 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From a5e7efc40ed841934c1d913f39476afa17d8e5f7 Mon Sep 17 00:00:00 2001
+From: Matthew Malcomson <matthew.malcomson@arm.com>
+Date: Thu, 9 Jul 2020 09:11:59 +0100
+Subject: [PATCH 3/3] aarch64: Mitigate SLS for BLR instruction
+
+This patch introduces the mitigation for Straight Line Speculation past
+the BLR instruction.
+
+This mitigation replaces BLR instructions with a BL to a stub which uses
+a BR to jump to the original value.  These function stubs are then
+appended with a speculation barrier to ensure no straight line
+speculation happens after these jumps.
+
+When optimising for speed we use a set of stubs for each function since
+this should help the branch predictor make more accurate predictions
+about where a stub should branch.
+
+When optimising for size we use one set of stubs for all functions.
+This set of stubs can have human readable names, and we are using
+`__call_indirect_x<N>` for register x<N>.
+
+When BTI branch protection is enabled the BLR instruction can jump to a
+`BTI c` instruction using any register, while the BR instruction can
+only jump to a `BTI c` instruction using the x16 or x17 registers.
+Hence, in order to ensure this transformation is safe we mov the value
+of the original register into x16 and use x16 for the BR.
+
+As an example when optimising for size:
+a
+    BLR x0
+instruction would get transformed to something like
+    BL __call_indirect_x0
+where __call_indirect_x0 labels a thunk that contains
+__call_indirect_x0:
+    MOV X16, X0
+    BR X16
+    <speculation barrier>
+
+The first version of this patch used local symbols specific to a
+compilation unit to try and avoid relocations.
+This was mistaken since functions coming from the same compilation unit
+can still be in different sections, and the assembler will insert
+relocations at jumps between sections.
+
+On any relocation the linker is permitted to emit a veneer to handle
+jumps between symbols that are very far apart.  The registers x16 and
+x17 may be clobbered by these veneers.
+Hence the function stubs cannot rely on the values of x16 and x17 being
+the same as just before the function stub is called.
+
+Similar can be said for the hot/cold partitioning of single functions,
+so function-local stubs have the same restriction.
+
+This updated version of the patch never emits function stubs for x16 and
+x17, and instead forces other registers to be used.
+
+Given the above, there is now no benefit to local symbols (since they
+are not enough to avoid dealing with linker intricacies).  This patch
+now uses global symbols with hidden visibility each stored in their own
+COMDAT section.  This means stubs can be shared between compilation
+units while still avoiding the PLT indirection.
+
+This patch also removes the `__call_indirect_x30` stub (and
+function-local equivalent) which would simply jump back to the original
+location.
+
+The function-local stubs are emitted to the assembly output file in one
+chunk, which means we need not add the speculation barrier directly
+after each one.
+This is because we know for certain that the instructions directly after
+the BR in all but the last function stub will be from another one of
+these stubs and hence will not contain a speculation gadget.
+Instead we add a speculation barrier at the end of the sequence of
+stubs.
+
+The global stubs are emitted in COMDAT/.linkonce sections by
+themselves so that the linker can remove duplicates from multiple object
+files.  This means they are not emitted in one chunk, and each one must
+include the speculation barrier.
+
+Another difference is that since the global stubs are shared across
+compilation units we do not know that all functions will be targeting an
+architecture supporting the SB instruction.
+Rather than provide multiple stubs for each architecture, we provide a
+stub that will work for all architectures -- using the DSB+ISB barrier.
+
+This mitigation does not apply for BLR instructions in the following
+places:
+- Some accesses to thread-local variables use a code sequence with a BLR
+  instruction.  This code sequence is part of the binary interface between
+  compiler and linker. If this BLR instruction needs to be mitigated, it'd
+  probably be best to do so in the linker. It seems that the code sequence
+  for thread-local variable access is unlikely to lead to a Spectre Revalation
+  Gadget.
+- PLT stubs are produced by the linker and each contain a BLR instruction.
+  It seems that at most only after the last PLT stub a Spectre Revalation
+  Gadget might appear.
+
+Testing:
+  Bootstrap and regtest on AArch64
+    (with BOOT_CFLAGS="-mharden-sls=retbr,blr")
+  Used a temporary hack(1) in gcc-dg.exp to use these options on every
+  test in the testsuite, a slight modification to emit the speculation
+  barrier after every function stub, and a script to check that the
+  output never emitted a BLR, or unmitigated BR or RET instruction.
+  Similar on an aarch64-none-elf cross-compiler.
+
+1) Temporary hack emitted a speculation barrier at the end of every stub
+function, and used a script to ensure that:
+  a) Every RET or BR is immediately followed by a speculation barrier.
+  b) No BLR instruction is emitted by compiler.
+
+gcc/ChangeLog:
+
+	* config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm):
+	New declaration.
+	* config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new
+	stub registers class.
+	(aarch64_class_max_nregs): Likewise.
+	(aarch64_register_move_cost): Likewise.
+	(aarch64_sls_shared_thunks): Global array to store stub labels.
+	(aarch64_sls_emit_function_stub): New.
+	(aarch64_create_blr_label): New.
+	(aarch64_sls_emit_blr_function_thunks): New.
+	(aarch64_sls_emit_shared_blr_thunks): New.
+	(aarch64_asm_file_end): New.
+	(aarch64_indirect_call_asm): New.
+	(TARGET_ASM_FILE_END): Use aarch64_asm_file_end.
+	(TARGET_ASM_FUNCTION_EPILOGUE): Use
+	aarch64_sls_emit_blr_function_thunks.
+	* config/aarch64/aarch64.h (STB_REGNUM_P): New.
+	(enum reg_class): Add STUB_REGS class.
+	(machine_function): Introduce `call_via` array for
+	function-local stub labels.
+	* config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use
+	aarch64_indirect_call_asm to emit code when hardening BLR
+	instructions.
+	* config/aarch64/constraints.md (Ucr): New constraint
+	representing registers for indirect calls.  Is GENERAL_REGS
+	usually, and STUB_REGS when hardening BLR instruction against
+	SLS.
+	* config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class
+	is also a general register.
+
+gcc/testsuite/ChangeLog:
+
+	* gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c: New test.
+	* gcc.target/aarch64/sls-mitigation/sls-miti-blr.c: New test.
+---
+ gcc/config/aarch64/aarch64-protos.h                |   1 +
+ gcc/config/aarch64/aarch64.c                       | 225 ++++++++++++++++++++-
+ gcc/config/aarch64/aarch64.h                       |  15 ++
+ gcc/config/aarch64/aarch64.md                      |  11 +-
+ gcc/config/aarch64/constraints.md                  |   9 +
+ gcc/config/aarch64/predicates.md                   |   3 +-
+ .../aarch64/sls-mitigation/sls-miti-blr-bti.c      |  40 ++++
+ .../aarch64/sls-mitigation/sls-miti-blr.c          |  33 +++
+ 8 files changed, 328 insertions(+), 9 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
+ create mode 100644 gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
+
+diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
+index ee0ffde..839f801 100644
+--- a/gcc/config/aarch64/aarch64-protos.h
++++ b/gcc/config/aarch64/aarch64-protos.h
+@@ -782,6 +782,7 @@ extern const atomic_ool_names aarch64_ool_ldeor_names;
+ tree aarch64_resolve_overloaded_builtin_general (location_t, tree, void *);
+ 
+ const char *aarch64_sls_barrier (int);
++const char *aarch64_indirect_call_asm (rtx);
+ extern bool aarch64_harden_sls_retbr_p (void);
+ extern bool aarch64_harden_sls_blr_p (void);
+ 
+diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
+index 2389d49..0f7bba3 100644
+--- a/gcc/config/aarch64/aarch64.c
++++ b/gcc/config/aarch64/aarch64.c
+@@ -10605,6 +10605,9 @@ aarch64_label_mentioned_p (rtx x)
+ enum reg_class
+ aarch64_regno_regclass (unsigned regno)
+ {
++  if (STUB_REGNUM_P (regno))
++    return STUB_REGS;
++
+   if (GP_REGNUM_P (regno))
+     return GENERAL_REGS;
+ 
+@@ -10939,6 +10942,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode)
+   unsigned int nregs, vec_flags;
+   switch (regclass)
+     {
++    case STUB_REGS:
+     case TAILCALL_ADDR_REGS:
+     case POINTER_REGS:
+     case GENERAL_REGS:
+@@ -13155,10 +13159,12 @@ aarch64_register_move_cost (machine_mode mode,
+     = aarch64_tune_params.regmove_cost;
+ 
+   /* Caller save and pointer regs are equivalent to GENERAL_REGS.  */
+-  if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS)
++  if (to == TAILCALL_ADDR_REGS || to == POINTER_REGS
++      || to == STUB_REGS)
+     to = GENERAL_REGS;
+ 
+-  if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS)
++  if (from == TAILCALL_ADDR_REGS || from == POINTER_REGS
++      || from == STUB_REGS)
+     from = GENERAL_REGS;
+ 
+   /* Make RDFFR very expensive.  In particular, if we know that the FFR
+@@ -22957,6 +22963,215 @@ aarch64_sls_barrier (int mitigation_required)
+     : "";
+ }
+ 
++static GTY (()) tree aarch64_sls_shared_thunks[30];
++static GTY (()) bool aarch64_sls_shared_thunks_needed = false;
++const char *indirect_symbol_names[30] = {
++    "__call_indirect_x0",
++    "__call_indirect_x1",
++    "__call_indirect_x2",
++    "__call_indirect_x3",
++    "__call_indirect_x4",
++    "__call_indirect_x5",
++    "__call_indirect_x6",
++    "__call_indirect_x7",
++    "__call_indirect_x8",
++    "__call_indirect_x9",
++    "__call_indirect_x10",
++    "__call_indirect_x11",
++    "__call_indirect_x12",
++    "__call_indirect_x13",
++    "__call_indirect_x14",
++    "__call_indirect_x15",
++    "", /* "__call_indirect_x16",  */
++    "", /* "__call_indirect_x17",  */
++    "__call_indirect_x18",
++    "__call_indirect_x19",
++    "__call_indirect_x20",
++    "__call_indirect_x21",
++    "__call_indirect_x22",
++    "__call_indirect_x23",
++    "__call_indirect_x24",
++    "__call_indirect_x25",
++    "__call_indirect_x26",
++    "__call_indirect_x27",
++    "__call_indirect_x28",
++    "__call_indirect_x29",
++};
++
++/* Function to create a BLR thunk.  This thunk is used to mitigate straight
++   line speculation.  Instead of a simple BLR that can be speculated past,
++   we emit a BL to this thunk, and this thunk contains a BR to the relevant
++   register.  These thunks have the relevant speculation barries put after
++   their indirect branch so that speculation is blocked.
++
++   We use such a thunk so the speculation barriers are kept off the
++   architecturally executed path in order to reduce the performance overhead.
++
++   When optimizing for size we use stubs shared by the linked object.
++   When optimizing for performance we emit stubs for each function in the hope
++   that the branch predictor can better train on jumps specific for a given
++   function.  */
++rtx
++aarch64_sls_create_blr_label (int regnum)
++{
++  gcc_assert (STUB_REGNUM_P (regnum));
++  if (optimize_function_for_size_p (cfun))
++    {
++      /* For the thunks shared between different functions in this compilation
++	 unit we use a named symbol -- this is just for users to more easily
++	 understand the generated assembly.  */
++      aarch64_sls_shared_thunks_needed = true;
++      const char *thunk_name = indirect_symbol_names[regnum];
++      if (aarch64_sls_shared_thunks[regnum] == NULL)
++	{
++	  /* Build a decl representing this function stub and record it for
++	     later.  We build a decl here so we can use the GCC machinery for
++	     handling sections automatically (through `get_named_section` and
++	     `make_decl_one_only`).  That saves us a lot of trouble handling
++	     the specifics of different output file formats.  */
++	  tree decl = build_decl (BUILTINS_LOCATION, FUNCTION_DECL,
++				  get_identifier (thunk_name),
++				  build_function_type_list (void_type_node,
++							    NULL_TREE));
++	  DECL_RESULT (decl) = build_decl (BUILTINS_LOCATION, RESULT_DECL,
++					   NULL_TREE, void_type_node);
++	  TREE_PUBLIC (decl) = 1;
++	  TREE_STATIC (decl) = 1;
++	  DECL_IGNORED_P (decl) = 1;
++	  DECL_ARTIFICIAL (decl) = 1;
++	  make_decl_one_only (decl, DECL_ASSEMBLER_NAME (decl));
++	  resolve_unique_section (decl, 0, false);
++	  aarch64_sls_shared_thunks[regnum] = decl;
++	}
++
++      return gen_rtx_SYMBOL_REF (Pmode, thunk_name);
++    }
++
++  if (cfun->machine->call_via[regnum] == NULL)
++    cfun->machine->call_via[regnum]
++      = gen_rtx_LABEL_REF (Pmode, gen_label_rtx ());
++  return cfun->machine->call_via[regnum];
++}
++
++/* Helper function for aarch64_sls_emit_blr_function_thunks and
++   aarch64_sls_emit_shared_blr_thunks below.  */
++static void
++aarch64_sls_emit_function_stub (FILE *out_file, int regnum)
++{
++  /* Save in x16 and branch to that function so this transformation does
++     not prevent jumping to `BTI c` instructions.  */
++  asm_fprintf (out_file, "\tmov\tx16, x%d\n", regnum);
++  asm_fprintf (out_file, "\tbr\tx16\n");
++}
++
++/* Emit all BLR stubs for this particular function.
++   Here we emit all the BLR stubs needed for the current function.  Since we
++   emit these stubs in a consecutive block we know there will be no speculation
++   gadgets between each stub, and hence we only emit a speculation barrier at
++   the end of the stub sequences.
++
++   This is called in the TARGET_ASM_FUNCTION_EPILOGUE hook.  */
++void
++aarch64_sls_emit_blr_function_thunks (FILE *out_file)
++{
++  if (! aarch64_harden_sls_blr_p ())
++    return;
++
++  bool any_functions_emitted = false;
++  /* We must save and restore the current function section since this assembly
++     is emitted at the end of the function.  This means it can be emitted *just
++     after* the cold section of a function.  That cold part would be emitted in
++     a different section.  That switch would trigger a `.cfi_endproc` directive
++     to be emitted in the original section and a `.cfi_startproc` directive to
++     be emitted in the new section.  Switching to the original section without
++     restoring would mean that the `.cfi_endproc` emitted as a function ends
++     would happen in a different section -- leaving an unmatched
++     `.cfi_startproc` in the cold text section and an unmatched `.cfi_endproc`
++     in the standard text section.  */
++  section *save_text_section = in_section;
++  switch_to_section (function_section (current_function_decl));
++  for (int regnum = 0; regnum < 30; ++regnum)
++    {
++      rtx specu_label = cfun->machine->call_via[regnum];
++      if (specu_label == NULL)
++	continue;
++
++      targetm.asm_out.print_operand (out_file, specu_label, 0);
++      asm_fprintf (out_file, ":\n");
++      aarch64_sls_emit_function_stub (out_file, regnum);
++      any_functions_emitted = true;
++    }
++  if (any_functions_emitted)
++    /* Can use the SB if needs be here, since this stub will only be used
++      by the current function, and hence for the current target.  */
++    asm_fprintf (out_file, "\t%s\n", aarch64_sls_barrier (true));
++  switch_to_section (save_text_section);
++}
++
++/* Emit shared BLR stubs for the current compilation unit.
++   Over the course of compiling this unit we may have converted some BLR
++   instructions to a BL to a shared stub function.  This is where we emit those
++   stub functions.
++   This function is for the stubs shared between different functions in this
++   compilation unit.  We share when optimizing for size instead of speed.
++
++   This function is called through the TARGET_ASM_FILE_END hook.  */
++void
++aarch64_sls_emit_shared_blr_thunks (FILE *out_file)
++{
++  if (! aarch64_sls_shared_thunks_needed)
++    return;
++
++  for (int regnum = 0; regnum < 30; ++regnum)
++    {
++      tree decl = aarch64_sls_shared_thunks[regnum];
++      if (!decl)
++	continue;
++
++      const char *name = indirect_symbol_names[regnum];
++      switch_to_section (get_named_section (decl, NULL, 0));
++      ASM_OUTPUT_ALIGN (out_file, 2);
++      targetm.asm_out.globalize_label (out_file, name);
++      /* Only emits if the compiler is configured for an assembler that can
++	 handle visibility directives.  */
++      targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN);
++      ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function");
++      ASM_OUTPUT_LABEL (out_file, name);
++      aarch64_sls_emit_function_stub (out_file, regnum);
++      /* Use the most conservative target to ensure it can always be used by any
++	 function in the translation unit.  */
++      asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n");
++      ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl);
++    }
++}
++
++/* Implement TARGET_ASM_FILE_END.  */
++void
++aarch64_asm_file_end ()
++{
++  aarch64_sls_emit_shared_blr_thunks (asm_out_file);
++  /* Since this function will be called for the ASM_FILE_END hook, we ensure
++     that what would be called otherwise (e.g. `file_end_indicate_exec_stack`
++     for FreeBSD) still gets called.  */
++#ifdef TARGET_ASM_FILE_END
++  TARGET_ASM_FILE_END ();
++#endif
++}
++
++const char *
++aarch64_indirect_call_asm (rtx addr)
++{
++  gcc_assert (REG_P (addr));
++  if (aarch64_harden_sls_blr_p ())
++    {
++      rtx stub_label = aarch64_sls_create_blr_label (REGNO (addr));
++      output_asm_insn ("bl\t%0", &stub_label);
++    }
++  else
++   output_asm_insn ("blr\t%0", &addr);
++  return "";
++}
++
+ /* Target-specific selftests.  */
+ 
+ #if CHECKING_P
+@@ -23507,6 +23722,12 @@ aarch64_libgcc_floating_mode_supported_p
+ #undef TARGET_MD_ASM_ADJUST
+ #define TARGET_MD_ASM_ADJUST arm_md_asm_adjust
+ 
++#undef TARGET_ASM_FILE_END
++#define TARGET_ASM_FILE_END aarch64_asm_file_end
++
++#undef TARGET_ASM_FUNCTION_EPILOGUE
++#define TARGET_ASM_FUNCTION_EPILOGUE aarch64_sls_emit_blr_function_thunks
++
+ struct gcc_target targetm = TARGET_INITIALIZER;
+ 
+ #include "gt-aarch64.h"
+diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
+index 8e0fc37..7331450 100644
+--- a/gcc/config/aarch64/aarch64.h
++++ b/gcc/config/aarch64/aarch64.h
+@@ -643,6 +643,16 @@ extern unsigned aarch64_architecture_version;
+ #define GP_REGNUM_P(REGNO)						\
+   (((unsigned) (REGNO - R0_REGNUM)) <= (R30_REGNUM - R0_REGNUM))
+ 
++/* Registers known to be preserved over a BL instruction.  This consists of the
++   GENERAL_REGS without x16, x17, and x30.  The x30 register is changed by the
++   BL instruction itself, while the x16 and x17 registers may be used by
++   veneers which can be inserted by the linker.  */
++#define STUB_REGNUM_P(REGNO) \
++  (GP_REGNUM_P (REGNO) \
++   && (REGNO) != R16_REGNUM \
++   && (REGNO) != R17_REGNUM \
++   && (REGNO) != R30_REGNUM) \
++
+ #define FP_REGNUM_P(REGNO)			\
+   (((unsigned) (REGNO - V0_REGNUM)) <= (V31_REGNUM - V0_REGNUM))
+ 
+@@ -667,6 +677,7 @@ enum reg_class
+ {
+   NO_REGS,
+   TAILCALL_ADDR_REGS,
++  STUB_REGS,
+   GENERAL_REGS,
+   STACK_REG,
+   POINTER_REGS,
+@@ -689,6 +700,7 @@ enum reg_class
+ {						\
+   "NO_REGS",					\
+   "TAILCALL_ADDR_REGS",				\
++  "STUB_REGS",					\
+   "GENERAL_REGS",				\
+   "STACK_REG",					\
+   "POINTER_REGS",				\
+@@ -708,6 +720,7 @@ enum reg_class
+ {									\
+   { 0x00000000, 0x00000000, 0x00000000 },	/* NO_REGS */		\
+   { 0x00030000, 0x00000000, 0x00000000 },	/* TAILCALL_ADDR_REGS */\
++  { 0x3ffcffff, 0x00000000, 0x00000000 },	/* STUB_REGS */		\
+   { 0x7fffffff, 0x00000000, 0x00000003 },	/* GENERAL_REGS */	\
+   { 0x80000000, 0x00000000, 0x00000000 },	/* STACK_REG */		\
+   { 0xffffffff, 0x00000000, 0x00000003 },	/* POINTER_REGS */	\
+@@ -862,6 +875,8 @@ typedef struct GTY (()) machine_function
+   struct aarch64_frame frame;
+   /* One entry for each hard register.  */
+   bool reg_is_wrapped_separately[LAST_SAVED_REGNUM];
++  /* One entry for each general purpose register.  */
++  rtx call_via[SP_REGNUM];
+   bool label_is_assembled;
+ } machine_function;
+ #endif
+diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
+index dda04ee..43da754 100644
+--- a/gcc/config/aarch64/aarch64.md
++++ b/gcc/config/aarch64/aarch64.md
+@@ -1022,16 +1022,15 @@
+ )
+ 
+ (define_insn "*call_insn"
+-  [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf"))
++  [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucr, Usf"))
+ 	 (match_operand 1 "" ""))
+    (unspec:DI [(match_operand:DI 2 "const_int_operand")] UNSPEC_CALLEE_ABI)
+    (clobber (reg:DI LR_REGNUM))]
+   ""
+   "@
+-  blr\\t%0
++  * return aarch64_indirect_call_asm (operands[0]);
+   bl\\t%c0"
+-  [(set_attr "type" "call, call")]
+-)
++  [(set_attr "type" "call, call")])
+ 
+ (define_expand "call_value"
+   [(parallel
+@@ -1050,13 +1049,13 @@
+ 
+ (define_insn "*call_value_insn"
+   [(set (match_operand 0 "" "")
+-	(call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf"))
++	(call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "Ucr, Usf"))
+ 		      (match_operand 2 "" "")))
+    (unspec:DI [(match_operand:DI 3 "const_int_operand")] UNSPEC_CALLEE_ABI)
+    (clobber (reg:DI LR_REGNUM))]
+   ""
+   "@
+-  blr\\t%1
++  * return aarch64_indirect_call_asm (operands[1]);
+   bl\\t%c1"
+   [(set_attr "type" "call, call")]
+ )
+diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md
+index d993268..8cc6f50 100644
+--- a/gcc/config/aarch64/constraints.md
++++ b/gcc/config/aarch64/constraints.md
+@@ -24,6 +24,15 @@
+ (define_register_constraint "Ucs" "TAILCALL_ADDR_REGS"
+   "@internal Registers suitable for an indirect tail call")
+ 
++(define_register_constraint "Ucr"
++    "aarch64_harden_sls_blr_p () ? STUB_REGS : GENERAL_REGS"
++  "@internal Registers to be used for an indirect call.
++   This is usually the general registers, but when we are hardening against
++   Straight Line Speculation we disallow x16, x17, and x30 so we can use
++   indirection stubs.  These indirection stubs cannot use the above registers
++   since they will be reached by a BL that may have to go through a linker
++   veneer.")
++
+ (define_register_constraint "w" "FP_REGS"
+   "Floating point and SIMD vector registers.")
+ 
+diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
+index 215fcec..1754b1e 100644
+--- a/gcc/config/aarch64/predicates.md
++++ b/gcc/config/aarch64/predicates.md
+@@ -32,7 +32,8 @@
+ 
+ (define_predicate "aarch64_general_reg"
+   (and (match_operand 0 "register_operand")
+-       (match_test "REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS")))
++       (match_test "REGNO_REG_CLASS (REGNO (op)) == STUB_REGS
++		    || REGNO_REG_CLASS (REGNO (op)) == GENERAL_REGS")))
+ 
+ ;; Return true if OP a (const_int 0) operand.
+ (define_predicate "const0_operand"
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
+new file mode 100644
+index 0000000..b1fb754
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr-bti.c
+@@ -0,0 +1,40 @@
++/* { dg-do compile } */
++/* { dg-additional-options "-mharden-sls=blr -mbranch-protection=bti" } */
++/*
++   Ensure that the SLS hardening of BLR leaves no BLR instructions.
++   Here we also check that there are no BR instructions with anything except an
++   x16 or x17 register.  This is because a `BTI c` instruction can be branched
++   to using a BLR instruction using any register, but can only be branched to
++   with a BR using an x16 or x17 register.
++  */
++typedef int (foo) (int, int);
++typedef void (bar) (int, int);
++struct sls_testclass {
++    foo *x;
++    bar *y;
++    int left;
++    int right;
++};
++
++/* We test both RTL patterns for a call which returns a value and a call which
++   does not.  */
++int blr_call_value (struct sls_testclass x)
++{
++  int retval = x.x(x.left, x.right);
++  if (retval % 10)
++    return 100;
++  return 9;
++}
++
++int blr_call (struct sls_testclass x)
++{
++  x.y(x.left, x.right);
++  if (x.left % 10)
++    return 100;
++  return 9;
++}
++
++/* { dg-final { scan-assembler-not {\tblr\t} } } */
++/* { dg-final { scan-assembler-not {\tbr\tx(?!16|17)} } } */
++/* { dg-final { scan-assembler {\tbr\tx(16|17)} } } */
++
+diff --git a/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
+new file mode 100644
+index 0000000..88bafff
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/aarch64/sls-mitigation/sls-miti-blr.c
+@@ -0,0 +1,33 @@
++/* { dg-additional-options "-mharden-sls=blr -save-temps" } */
++/* Ensure that the SLS hardening of BLR leaves no BLR instructions.
++   We only test that all BLR instructions have been removed, not that the
++   resulting code makes sense.  */
++typedef int (foo) (int, int);
++typedef void (bar) (int, int);
++struct sls_testclass {
++    foo *x;
++    bar *y;
++    int left;
++    int right;
++};
++
++/* We test both RTL patterns for a call which returns a value and a call which
++   does not.  */
++int blr_call_value (struct sls_testclass x)
++{
++  int retval = x.x(x.left, x.right);
++  if (retval % 10)
++    return 100;
++  return 9;
++}
++
++int blr_call (struct sls_testclass x)
++{
++  x.y(x.left, x.right);
++  if (x.left % 10)
++    return 100;
++  return 9;
++}
++
++/* { dg-final { scan-assembler-not {\tblr\t} } } */
++/* { dg-final { scan-assembler {\tbr\tx[0-9][0-9]?} } } */
+-- 
+2.7.4
+
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch b/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch
new file mode 100644
index 0000000..f0e6f85
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.1/pr96130.patch
@@ -0,0 +1,106 @@
+From 0d03c0ee5213703ec6d9ffa632fa5298d83adaaa Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Mon, 13 Jul 2020 18:25:53 +0200
+Subject: [PATCH] ipa-fnsummary: Fix ICE with switch predicates [PR96130]
+
+The following testcase ICEs since r10-3199.
+There is a switch with default label, where the controlling expression has
+range just 0..7 and there are case labels for all those 8 values, but
+nothing has yet optimized away the default.
+Since r10-3199, set_switch_stmt_execution_predicate sets the switch to
+default label's edge's predicate to a false predicate and then
+compute_bb_predicates propagates the predicates through the cfg, but false
+predicates aren't really added.  The caller of compute_bb_predicates
+in one place handles NULL bb->aux as false predicate:
+      if (fbi.info)
+	{
+	  if (bb->aux)
+	    bb_predicate = *(predicate *) bb->aux;
+	  else
+	    bb_predicate = false;
+	}
+      else
+	bb_predicate = true;
+but then in two further spots that the patch below is changing
+it assumes bb->aux must be non-NULL.  Those two spots are guarded by a
+condition that is only true if fbi.info is non-NULL, so I think the right
+fix is to treat NULL aux as false predicate in those spots too.
+
+2020-07-13  Jakub Jelinek  <jakub@redhat.com>
+
+	PR ipa/96130
+	* ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux
+	as false predicate.
+
+	* gcc.dg/torture/pr96130.c: New test.
+
+(cherry picked from commit 776e48e0931db69f158f40e5cb8e15463d879a42)
+---
+ gcc/ipa-fnsummary.c                    | 10 ++++++++--
+ gcc/testsuite/gcc.dg/torture/pr96130.c | 26 ++++++++++++++++++++++++++
+ 2 files changed, 34 insertions(+), 2 deletions(-)
+ create mode 100644 gcc/testsuite/gcc.dg/torture/pr96130.c
+
+diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c
+index 045a0ecf766..55a0b272a96 100644
+--- a/gcc/ipa-fnsummary.c
++++ b/gcc/ipa-fnsummary.c
+@@ -2766,7 +2766,10 @@ analyze_function_body (struct cgraph_node *node, bool early)
+ 	  edge ex;
+ 	  unsigned int j;
+ 	  class tree_niter_desc niter_desc;
+-	  bb_predicate = *(predicate *) loop->header->aux;
++	  if (loop->header->aux)
++	    bb_predicate = *(predicate *) loop->header->aux;
++	  else
++	    bb_predicate = false;
+ 
+ 	  exits = get_loop_exit_edges (loop);
+ 	  FOR_EACH_VEC_ELT (exits, j, ex)
+@@ -2799,7 +2802,10 @@ analyze_function_body (struct cgraph_node *node, bool early)
+ 	  for (unsigned i = 0; i < loop->num_nodes; i++)
+ 	    {
+ 	      gimple_stmt_iterator gsi;
+-	      bb_predicate = *(predicate *) body[i]->aux;
++	      if (body[i]->aux)
++		bb_predicate = *(predicate *) body[i]->aux;
++	      else
++		bb_predicate = false;
+ 	      for (gsi = gsi_start_bb (body[i]); !gsi_end_p (gsi);
+ 		   gsi_next (&gsi))
+ 		{
+diff --git a/gcc/testsuite/gcc.dg/torture/pr96130.c b/gcc/testsuite/gcc.dg/torture/pr96130.c
+new file mode 100644
+index 00000000000..f722b9ad2a9
+--- /dev/null
++++ b/gcc/testsuite/gcc.dg/torture/pr96130.c
+@@ -0,0 +1,26 @@
++/* PR ipa/96130 */
++/* { dg-do compile } */
++
++struct S { unsigned j : 3; };
++int k, l, m;
++
++void
++foo (struct S x)
++{
++  while (l != 5)
++    switch (x.j)
++      {
++      case 1:
++      case 3:
++      case 4:
++      case 6:
++      case 2:
++      case 5:
++	l = m;
++      case 7:
++      case 0:
++	k = 0;
++      default:
++	break;
++      }
++}
+-- 
+2.18.4
+
diff --git a/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch b/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch
new file mode 100644
index 0000000..b13bb9e
--- /dev/null
+++ b/poky/meta/recipes-devtools/go/go-dep/0001-Update-sys-module-to-latest.patch
@@ -0,0 +1,145574 @@
+From f7904cb91a1b18e893ffbd25b450926d145d0e0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 22 Apr 2020 18:44:48 -0700
+Subject: [PATCH] Update sys module to latest
+
+Gets us riscv support
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Gopkg.lock                                    |    4 +-
+ .../golang.org/x/sys/unix/affinity_linux.go   |   86 +
+ vendor/golang.org/x/sys/unix/aliases.go       |   14 +
+ vendor/golang.org/x/sys/unix/asm_aix_ppc64.s  |   17 +
+ .../x/sys/unix/asm_dragonfly_amd64.s          |   10 +-
+ ...sm_linux_mips64x.s => asm_freebsd_arm64.s} |   11 +-
+ vendor/golang.org/x/sys/unix/asm_linux_386.s  |   36 +-
+ .../golang.org/x/sys/unix/asm_linux_amd64.s   |   30 +-
+ vendor/golang.org/x/sys/unix/asm_linux_arm.s  |   35 +-
+ .../golang.org/x/sys/unix/asm_linux_arm64.s   |   30 +-
+ .../golang.org/x/sys/unix/asm_linux_mips64x.s |   36 +-
+ .../golang.org/x/sys/unix/asm_linux_mipsx.s   |   33 +-
+ .../golang.org/x/sys/unix/asm_linux_ppc64x.s  |   38 +-
+ .../golang.org/x/sys/unix/asm_linux_riscv64.s |   47 +
+ .../golang.org/x/sys/unix/asm_linux_s390x.s   |   28 +
+ ...asm_linux_mips64x.s => asm_netbsd_arm64.s} |   17 +-
+ ...sm_linux_mips64x.s => asm_openbsd_arm64.s} |    9 +-
+ .../golang.org/x/sys/unix/bluetooth_linux.go  |    1 +
+ vendor/golang.org/x/sys/unix/cap_freebsd.go   |   30 +-
+ vendor/golang.org/x/sys/unix/constants.go     |    2 +-
+ vendor/golang.org/x/sys/unix/dev_aix_ppc.go   |   27 +
+ vendor/golang.org/x/sys/unix/dev_aix_ppc64.go |   29 +
+ vendor/golang.org/x/sys/unix/dev_darwin.go    |   24 +
+ vendor/golang.org/x/sys/unix/dev_dragonfly.go |   30 +
+ vendor/golang.org/x/sys/unix/dev_freebsd.go   |   30 +
+ vendor/golang.org/x/sys/unix/dev_linux.go     |    8 +-
+ vendor/golang.org/x/sys/unix/dev_netbsd.go    |   29 +
+ vendor/golang.org/x/sys/unix/dev_openbsd.go   |   29 +
+ vendor/golang.org/x/sys/unix/dirent.go        |    2 +-
+ vendor/golang.org/x/sys/unix/endian_little.go |    2 +-
+ vendor/golang.org/x/sys/unix/env_unix.go      |    8 +-
+ vendor/golang.org/x/sys/unix/env_unset.go     |   14 -
+ .../x/sys/unix/errors_freebsd_386.go          |    6 +
+ .../x/sys/unix/errors_freebsd_amd64.go        |    6 +
+ .../x/sys/unix/errors_freebsd_arm64.go        |   17 +
+ .../x/sys/unix/{flock.go => fcntl.go}         |   18 +-
+ vendor/golang.org/x/sys/unix/fcntl_darwin.go  |   18 +
+ ...ck_linux_32bit.go => fcntl_linux_32bit.go} |    0
+ vendor/golang.org/x/sys/unix/fdset.go         |   29 +
+ vendor/golang.org/x/sys/unix/file_unix.go     |   27 -
+ vendor/golang.org/x/sys/unix/gccgo.go         |   20 +-
+ vendor/golang.org/x/sys/unix/gccgo_c.c        |   12 +-
+ .../x/sys/unix/gccgo_linux_amd64.go           |    2 +-
+ .../x/sys/unix/gccgo_linux_sparc64.go         |   20 -
+ vendor/golang.org/x/sys/unix/ioctl.go         |   65 +
+ vendor/golang.org/x/sys/unix/mkasm_darwin.go  |   78 +
+ vendor/golang.org/x/sys/unix/mkmerge.go       |  521 +++
+ vendor/golang.org/x/sys/unix/mkpost.go        |   63 +-
+ vendor/golang.org/x/sys/unix/mksyscall.go     |  402 +++
+ .../x/sys/unix/mksyscall_aix_ppc.go           |  415 +++
+ .../x/sys/unix/mksyscall_aix_ppc64.go         |  614 ++++
+ .../x/sys/unix/mksyscall_solaris.go           |  341 ++
+ .../golang.org/x/sys/unix/mksysctl_openbsd.go |  355 +++
+ vendor/golang.org/x/sys/unix/mksysnum.go      |  190 ++
+ .../golang.org/x/sys/unix/openbsd_pledge.go   |   38 -
+ vendor/golang.org/x/sys/unix/pagesize_unix.go |   15 +
+ .../golang.org/x/sys/unix/pledge_openbsd.go   |  163 +
+ vendor/golang.org/x/sys/unix/race.go          |    2 +-
+ vendor/golang.org/x/sys/unix/race0.go         |    4 +-
+ .../x/sys/unix/readdirent_getdents.go         |   12 +
+ .../x/sys/unix/readdirent_getdirentries.go    |   19 +
+ .../x/sys/unix/sockcmsg_dragonfly.go          |   16 +
+ .../golang.org/x/sys/unix/sockcmsg_linux.go   |    4 +-
+ vendor/golang.org/x/sys/unix/sockcmsg_unix.go |   28 +-
+ .../x/sys/unix/sockcmsg_unix_other.go         |   38 +
+ vendor/golang.org/x/sys/unix/str.go           |    2 +-
+ vendor/golang.org/x/sys/unix/syscall.go       |   38 +-
+ vendor/golang.org/x/sys/unix/syscall_aix.go   |  536 ++++
+ .../golang.org/x/sys/unix/syscall_aix_ppc.go  |   54 +
+ .../x/sys/unix/syscall_aix_ppc64.go           |   85 +
+ vendor/golang.org/x/sys/unix/syscall_bsd.go   |  112 +-
+ .../x/sys/unix/syscall_darwin.1_12.go         |   29 +
+ .../x/sys/unix/syscall_darwin.1_13.go         |  101 +
+ .../golang.org/x/sys/unix/syscall_darwin.go   |  263 +-
+ .../x/sys/unix/syscall_darwin_386.1_11.go     |    9 +
+ .../x/sys/unix/syscall_darwin_386.go          |   45 +-
+ .../x/sys/unix/syscall_darwin_amd64.1_11.go   |    9 +
+ .../x/sys/unix/syscall_darwin_amd64.go        |   45 +-
+ .../x/sys/unix/syscall_darwin_arm.1_11.go     |   11 +
+ .../x/sys/unix/syscall_darwin_arm.go          |   51 +-
+ .../x/sys/unix/syscall_darwin_arm64.1_11.go   |   11 +
+ .../x/sys/unix/syscall_darwin_arm64.go        |   47 +-
+ .../x/sys/unix/syscall_darwin_libSystem.go    |   33 +
+ .../x/sys/unix/syscall_dragonfly.go           |  136 +-
+ .../x/sys/unix/syscall_dragonfly_amd64.go     |   21 +-
+ .../golang.org/x/sys/unix/syscall_freebsd.go  |  592 ++--
+ .../x/sys/unix/syscall_freebsd_386.go         |   31 +-
+ .../x/sys/unix/syscall_freebsd_amd64.go       |   31 +-
+ .../x/sys/unix/syscall_freebsd_arm.go         |   27 +-
+ ...nfly_amd64.go => syscall_freebsd_arm64.go} |   31 +-
+ .../golang.org/x/sys/unix/syscall_illumos.go  |   57 +
+ vendor/golang.org/x/sys/unix/syscall_linux.go | 1030 +++++-
+ .../x/sys/unix/syscall_linux_386.go           |   47 +-
+ .../x/sys/unix/syscall_linux_amd64.go         |   80 +-
+ .../x/sys/unix/syscall_linux_arm.go           |   64 +-
+ .../x/sys/unix/syscall_linux_arm64.go         |  111 +-
+ .../golang.org/x/sys/unix/syscall_linux_gc.go |   14 +
+ .../x/sys/unix/syscall_linux_gc_386.go        |   16 +
+ .../x/sys/unix/syscall_linux_gccgo_386.go     |   30 +
+ .../x/sys/unix/syscall_linux_gccgo_arm.go     |   20 +
+ .../x/sys/unix/syscall_linux_mips64x.go       |   53 +-
+ .../x/sys/unix/syscall_linux_mipsx.go         |   47 +-
+ .../x/sys/unix/syscall_linux_ppc64x.go        |   59 +-
+ ...inux_arm64.go => syscall_linux_riscv64.go} |  118 +-
+ .../x/sys/unix/syscall_linux_s390x.go         |   44 +-
+ .../x/sys/unix/syscall_linux_sparc64.go       |   48 +-
+ .../golang.org/x/sys/unix/syscall_netbsd.go   |  156 +-
+ .../x/sys/unix/syscall_netbsd_386.go          |   21 +-
+ .../x/sys/unix/syscall_netbsd_amd64.go        |   21 +-
+ .../x/sys/unix/syscall_netbsd_arm.go          |   21 +-
+ ...etbsd_amd64.go => syscall_netbsd_arm64.go} |   25 +-
+ .../golang.org/x/sys/unix/syscall_no_getwd.go |   11 -
+ .../golang.org/x/sys/unix/syscall_openbsd.go  |  199 +-
+ .../x/sys/unix/syscall_openbsd_386.go         |   25 +-
+ .../x/sys/unix/syscall_openbsd_amd64.go       |   25 +-
+ .../x/sys/unix/syscall_openbsd_arm.go         |   27 +-
+ .../x/sys/unix/syscall_openbsd_arm64.go       |   41 +
+ .../golang.org/x/sys/unix/syscall_solaris.go  |  128 +-
+ .../x/sys/unix/syscall_solaris_amd64.go       |   24 +-
+ vendor/golang.org/x/sys/unix/syscall_unix.go  |  176 +-
+ .../golang.org/x/sys/unix/syscall_unix_gc.go  |    2 +-
+ ...l_unix_gc.go => syscall_unix_gc_ppc64x.go} |   21 +-
+ vendor/golang.org/x/sys/unix/timestruct.go    |   82 +
+ .../unix/{types_netbsd.go => types_aix.go}    |  196 +-
+ vendor/golang.org/x/sys/unix/types_darwin.go  |   41 +-
+ .../golang.org/x/sys/unix/types_dragonfly.go  |   66 +-
+ vendor/golang.org/x/sys/unix/types_freebsd.go |  178 +-
+ vendor/golang.org/x/sys/unix/types_netbsd.go  |   73 +-
+ vendor/golang.org/x/sys/unix/types_openbsd.go |   78 +-
+ vendor/golang.org/x/sys/unix/types_solaris.go |   54 +-
+ .../golang.org/x/sys/unix/unveil_openbsd.go   |   42 +
+ vendor/golang.org/x/sys/unix/xattr_bsd.go     |  240 ++
+ .../golang.org/x/sys/unix/zerrors_aix_ppc.go  | 1384 ++++++++
+ .../x/sys/unix/zerrors_aix_ppc64.go           | 1385 ++++++++
+ .../x/sys/unix/zerrors_darwin_386.go          |  391 ++-
+ .../x/sys/unix/zerrors_darwin_amd64.go        |  391 ++-
+ .../x/sys/unix/zerrors_darwin_arm.go          |  391 ++-
+ .../x/sys/unix/zerrors_darwin_arm64.go        |  391 ++-
+ .../x/sys/unix/zerrors_dragonfly_amd64.go     |  355 ++-
+ .../x/sys/unix/zerrors_freebsd_386.go         |  508 ++-
+ .../x/sys/unix/zerrors_freebsd_amd64.go       |  506 ++-
+ .../x/sys/unix/zerrors_freebsd_arm.go         |  368 ++-
+ ...ebsd_amd64.go => zerrors_freebsd_arm64.go} |  509 ++-
+ vendor/golang.org/x/sys/unix/zerrors_linux.go | 2469 +++++++++++++++
+ .../x/sys/unix/zerrors_linux_386.go           | 2690 ++++------------
+ .../x/sys/unix/zerrors_linux_amd64.go         | 2691 ++++------------
+ .../x/sys/unix/zerrors_linux_arm.go           | 2701 ++++------------
+ .../x/sys/unix/zerrors_linux_arm64.go         | 2673 ++++------------
+ .../x/sys/unix/zerrors_linux_mips.go          | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_mips64.go        | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_mips64le.go      | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_mipsle.go        | 2702 ++++------------
+ .../x/sys/unix/zerrors_linux_ppc64.go         | 2816 ++++-------------
+ .../x/sys/unix/zerrors_linux_ppc64le.go       | 2816 ++++-------------
+ .../x/sys/unix/zerrors_linux_riscv64.go       |  771 +++++
+ .../x/sys/unix/zerrors_linux_s390x.go         | 2812 ++++------------
+ .../x/sys/unix/zerrors_linux_sparc64.go       | 2013 +++---------
+ .../x/sys/unix/zerrors_netbsd_386.go          |  325 +-
+ .../x/sys/unix/zerrors_netbsd_amd64.go        |  325 +-
+ .../x/sys/unix/zerrors_netbsd_arm.go          |  325 +-
+ ...etbsd_amd64.go => zerrors_netbsd_arm64.go} |  327 +-
+ .../x/sys/unix/zerrors_openbsd_386.go         |  339 +-
+ .../x/sys/unix/zerrors_openbsd_amd64.go       |  576 ++--
+ .../x/sys/unix/zerrors_openbsd_arm.go         |  333 +-
+ ...nbsd_amd64.go => zerrors_openbsd_arm64.go} |  605 ++--
+ .../x/sys/unix/zerrors_solaris_amd64.go       |  380 ++-
+ .../x/sys/unix/zptrace_armnn_linux.go         |   41 +
+ .../x/sys/unix/zptrace_linux_arm64.go         |   17 +
+ .../x/sys/unix/zptrace_mipsnn_linux.go        |   50 +
+ .../x/sys/unix/zptrace_mipsnnle_linux.go      |   50 +
+ .../x/sys/unix/zptrace_x86_linux.go           |   80 +
+ .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1484 +++++++++
+ ..._netbsd_amd64.go => zsyscall_aix_ppc64.go} |  936 +++---
+ .../x/sys/unix/zsyscall_aix_ppc64_gc.go       | 1192 +++++++
+ .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go    | 1070 +++++++
+ ...win_arm.go => zsyscall_darwin_386.1_11.go} |  416 ++-
+ .../x/sys/unix/zsyscall_darwin_386.1_13.go    |   41 +
+ .../x/sys/unix/zsyscall_darwin_386.1_13.s     |   12 +
+ .../x/sys/unix/zsyscall_darwin_386.go         | 1314 ++++++--
+ .../x/sys/unix/zsyscall_darwin_386.s          |  284 ++
+ ...arm64.go => zsyscall_darwin_amd64.1_11.go} |  416 ++-
+ .../x/sys/unix/zsyscall_darwin_amd64.1_13.go  |   41 +
+ .../x/sys/unix/zsyscall_darwin_amd64.1_13.s   |   12 +
+ .../x/sys/unix/zsyscall_darwin_amd64.go       | 1314 ++++++--
+ .../x/sys/unix/zsyscall_darwin_amd64.s        |  284 ++
+ ...win_arm.go => zsyscall_darwin_arm.1_11.go} |  389 ++-
+ .../x/sys/unix/zsyscall_darwin_arm.1_13.go    |   41 +
+ .../x/sys/unix/zsyscall_darwin_arm.1_13.s     |   12 +
+ .../x/sys/unix/zsyscall_darwin_arm.go         | 1301 ++++++--
+ .../x/sys/unix/zsyscall_darwin_arm.s          |  282 ++
+ ...arm64.go => zsyscall_darwin_arm64.1_11.go} |  389 ++-
+ .../x/sys/unix/zsyscall_darwin_arm64.1_13.go  |   41 +
+ .../x/sys/unix/zsyscall_darwin_arm64.1_13.s   |   12 +
+ .../x/sys/unix/zsyscall_darwin_arm64.go       | 1301 ++++++--
+ .../x/sys/unix/zsyscall_darwin_arm64.s        |  282 ++
+ .../x/sys/unix/zsyscall_dragonfly_amd64.go    |  238 +-
+ .../x/sys/unix/zsyscall_freebsd_386.go        |  204 +-
+ .../x/sys/unix/zsyscall_freebsd_amd64.go      |  204 +-
+ .../x/sys/unix/zsyscall_freebsd_arm.go        |  204 +-
+ ...bsd_amd64.go => zsyscall_freebsd_arm64.go} |  206 +-
+ .../x/sys/unix/zsyscall_illumos_amd64.go      |   87 +
+ ...scall_linux_s390x.go => zsyscall_linux.go} |  774 ++---
+ .../x/sys/unix/zsyscall_linux_386.go          | 1573 +--------
+ .../x/sys/unix/zsyscall_linux_amd64.go        | 1607 +---------
+ .../x/sys/unix/zsyscall_linux_arm.go          | 1626 +---------
+ .../x/sys/unix/zsyscall_linux_arm64.go        | 1513 +--------
+ .../x/sys/unix/zsyscall_linux_mips.go         | 1567 +--------
+ .../x/sys/unix/zsyscall_linux_mips64.go       | 1552 +--------
+ .../x/sys/unix/zsyscall_linux_mips64le.go     | 1552 +--------
+ .../x/sys/unix/zsyscall_linux_mipsle.go       | 1567 +--------
+ .../x/sys/unix/zsyscall_linux_ppc64.go        | 1586 +---------
+ .../x/sys/unix/zsyscall_linux_ppc64le.go      | 1586 +---------
+ .../x/sys/unix/zsyscall_linux_riscv64.go      |  582 ++++
+ .../x/sys/unix/zsyscall_linux_s390x.go        | 1570 +--------
+ .../x/sys/unix/zsyscall_linux_sparc64.go      | 1247 +-------
+ .../x/sys/unix/zsyscall_netbsd_386.go         |  551 +++-
+ .../x/sys/unix/zsyscall_netbsd_amd64.go       |  551 +++-
+ .../x/sys/unix/zsyscall_netbsd_arm.go         |  551 +++-
+ ...ebsd_amd64.go => zsyscall_netbsd_arm64.go} |  262 +-
+ .../x/sys/unix/zsyscall_openbsd_386.go        |  338 +-
+ .../x/sys/unix/zsyscall_openbsd_amd64.go      |  338 +-
+ .../x/sys/unix/zsyscall_openbsd_arm.go        |  338 +-
+ ...arwin_386.go => zsyscall_openbsd_arm64.go} |  289 +-
+ .../x/sys/unix/zsyscall_solaris_amd64.go      |  382 ++-
+ ...sctl_openbsd.go => zsysctl_openbsd_386.go} |    4 +-
+ ...tl_openbsd.go => zsysctl_openbsd_amd64.go} |   42 +-
+ ...sctl_openbsd.go => zsysctl_openbsd_arm.go} |    6 +-
+ ...tl_openbsd.go => zsysctl_openbsd_arm64.go} |   47 +-
+ .../x/sys/unix/zsysnum_darwin_386.go          |   60 +-
+ .../x/sys/unix/zsysnum_darwin_amd64.go        |   62 +-
+ .../x/sys/unix/zsysnum_darwin_arm.go          |   14 +-
+ .../x/sys/unix/zsysnum_darwin_arm64.go        |   14 +-
+ .../x/sys/unix/zsysnum_dragonfly_amd64.go     |  176 +-
+ .../x/sys/unix/zsysnum_freebsd_386.go         |  731 +++--
+ .../x/sys/unix/zsysnum_freebsd_amd64.go       |  731 +++--
+ .../x/sys/unix/zsysnum_freebsd_arm.go         |  731 +++--
+ .../x/sys/unix/zsysnum_freebsd_arm64.go       |  396 +++
+ .../x/sys/unix/zsysnum_linux_386.go           |  808 ++---
+ .../x/sys/unix/zsysnum_linux_amd64.go         |   19 +-
+ .../x/sys/unix/zsysnum_linux_arm.go           |  745 ++---
+ .../x/sys/unix/zsysnum_linux_arm64.go         |   20 +-
+ .../x/sys/unix/zsysnum_linux_mips.go          |  779 ++---
+ .../x/sys/unix/zsysnum_linux_mips64.go        |   19 +-
+ .../x/sys/unix/zsysnum_linux_mips64le.go      |   19 +-
+ .../x/sys/unix/zsysnum_linux_mipsle.go        |  779 ++---
+ .../x/sys/unix/zsysnum_linux_ppc64.go         |   33 +-
+ .../x/sys/unix/zsysnum_linux_ppc64le.go       |   33 +-
+ ...inux_arm64.go => zsysnum_linux_riscv64.go} |   23 +-
+ .../x/sys/unix/zsysnum_linux_s390x.go         |   80 +-
+ .../x/sys/unix/zsysnum_linux_sparc64.go       |   35 +-
+ .../x/sys/unix/zsysnum_netbsd_386.go          |    4 +-
+ .../x/sys/unix/zsysnum_netbsd_amd64.go        |    4 +-
+ .../x/sys/unix/zsysnum_netbsd_arm.go          |    4 +-
+ ..._netbsd_386.go => zsysnum_netbsd_arm64.go} |    6 +-
+ .../x/sys/unix/zsysnum_openbsd_386.go         |  223 +-
+ .../x/sys/unix/zsysnum_openbsd_amd64.go       |  223 +-
+ .../x/sys/unix/zsysnum_openbsd_arm.go         |  217 +-
+ ...penbsd_arm.go => zsysnum_openbsd_arm64.go} |  218 +-
+ .../x/sys/unix/zsysnum_solaris_amd64.go       |   13 -
+ .../golang.org/x/sys/unix/ztypes_aix_ppc.go   |  352 +++
+ .../golang.org/x/sys/unix/ztypes_aix_ppc64.go |  356 +++
+ .../x/sys/unix/ztypes_darwin_386.go           |  195 +-
+ .../x/sys/unix/ztypes_darwin_amd64.go         |  241 +-
+ .../x/sys/unix/ztypes_darwin_arm.go           |  195 +-
+ .../x/sys/unix/ztypes_darwin_arm64.go         |  246 +-
+ .../x/sys/unix/ztypes_dragonfly_amd64.go      |  213 +-
+ .../x/sys/unix/ztypes_freebsd_386.go          |  426 ++-
+ .../x/sys/unix/ztypes_freebsd_amd64.go        |  448 ++-
+ .../x/sys/unix/ztypes_freebsd_arm.go          |  427 ++-
+ ...eebsd_amd64.go => ztypes_freebsd_arm64.go} |  430 ++-
+ vendor/golang.org/x/sys/unix/ztypes_linux.go  | 2340 ++++++++++++++
+ .../golang.org/x/sys/unix/ztypes_linux_386.go |  878 ++---
+ .../x/sys/unix/ztypes_linux_amd64.go          |  881 ++----
+ .../golang.org/x/sys/unix/ztypes_linux_arm.go |  899 +++---
+ .../x/sys/unix/ztypes_linux_arm64.go          |  883 ++----
+ .../x/sys/unix/ztypes_linux_mips.go           |  864 ++---
+ .../x/sys/unix/ztypes_linux_mips64.go         |  880 ++----
+ .../x/sys/unix/ztypes_linux_mips64le.go       |  880 ++----
+ .../x/sys/unix/ztypes_linux_mipsle.go         |  864 ++---
+ .../x/sys/unix/ztypes_linux_ppc64.go          |  889 ++----
+ .../x/sys/unix/ztypes_linux_ppc64le.go        |  889 ++----
+ .../x/sys/unix/ztypes_linux_riscv64.go        |  621 ++++
+ .../x/sys/unix/ztypes_linux_s390x.go          |  842 ++---
+ .../x/sys/unix/ztypes_linux_sparc64.go        |  910 +++---
+ .../x/sys/unix/ztypes_netbsd_386.go           |  145 +-
+ .../x/sys/unix/ztypes_netbsd_amd64.go         |  152 +-
+ .../x/sys/unix/ztypes_netbsd_arm.go           |  151 +-
+ ...netbsd_amd64.go => ztypes_netbsd_arm64.go} |  154 +-
+ .../x/sys/unix/ztypes_openbsd_386.go          |  173 +-
+ .../x/sys/unix/ztypes_openbsd_amd64.go        |  264 +-
+ .../x/sys/unix/ztypes_openbsd_arm.go          |  255 +-
+ ...enbsd_amd64.go => ztypes_openbsd_arm64.go} |  260 +-
+ .../x/sys/unix/ztypes_solaris_amd64.go        |  239 +-
+ 293 files changed, 60017 insertions(+), 59731 deletions(-)
+ create mode 100644 vendor/golang.org/x/sys/unix/affinity_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/aliases.go
+ create mode 100644 vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+ copy vendor/golang.org/x/sys/unix/{asm_linux_mips64x.s => asm_freebsd_arm64.s} (71%)
+ create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+ copy vendor/golang.org/x/sys/unix/{asm_linux_mips64x.s => asm_netbsd_arm64.s} (60%)
+ copy vendor/golang.org/x/sys/unix/{asm_linux_mips64x.s => asm_openbsd_arm64.s} (76%)
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_darwin.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_dragonfly.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_freebsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_netbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/dev_openbsd.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/env_unset.go
+ create mode 100644 vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
+ rename vendor/golang.org/x/sys/unix/{flock.go => fcntl.go} (54%)
+ create mode 100644 vendor/golang.org/x/sys/unix/fcntl_darwin.go
+ rename vendor/golang.org/x/sys/unix/{flock_linux_32bit.go => fcntl_linux_32bit.go} (100%)
+ create mode 100644 vendor/golang.org/x/sys/unix/fdset.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/file_unix.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ioctl.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mkasm_darwin.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mkmerge.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksyscall_solaris.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/mksysnum.go
+ delete mode 100644 vendor/golang.org/x/sys/unix/openbsd_pledge.go
+ create mode 100644 vendor/golang.org/x/sys/unix/pagesize_unix.go
+ create mode 100644 vendor/golang.org/x/sys/unix/pledge_openbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdents.go
+ create mode 100644 vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+ create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
+ create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+ copy vendor/golang.org/x/sys/unix/{syscall_dragonfly_amd64.go => syscall_freebsd_arm64.go} (59%)
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_illumos.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+ copy vendor/golang.org/x/sys/unix/{syscall_linux_arm64.go => syscall_linux_riscv64.go} (68%)
+ copy vendor/golang.org/x/sys/unix/{syscall_netbsd_amd64.go => syscall_netbsd_arm64.go} (50%)
+ delete mode 100644 vendor/golang.org/x/sys/unix/syscall_no_getwd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+ copy vendor/golang.org/x/sys/unix/{syscall_unix_gc.go => syscall_unix_gc_ppc64x.go} (51%)
+ create mode 100644 vendor/golang.org/x/sys/unix/timestruct.go
+ copy vendor/golang.org/x/sys/unix/{types_netbsd.go => types_aix.go} (53%)
+ create mode 100644 vendor/golang.org/x/sys/unix/unveil_openbsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/xattr_bsd.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+ copy vendor/golang.org/x/sys/unix/{zerrors_freebsd_amd64.go => zerrors_freebsd_arm64.go} (80%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+ copy vendor/golang.org/x/sys/unix/{zerrors_netbsd_amd64.go => zerrors_netbsd_arm64.go} (89%)
+ copy vendor/golang.org/x/sys/unix/{zerrors_openbsd_amd64.go => zerrors_openbsd_arm64.go} (76%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_netbsd_amd64.go => zsyscall_aix_ppc64.go} (57%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm.go => zsyscall_darwin_386.1_11.go} (85%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm64.go => zsyscall_darwin_amd64.1_11.go} (85%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm.go => zsyscall_darwin_arm.1_11.go} (85%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_arm64.go => zsyscall_darwin_arm64.1_11.go} (84%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+ copy vendor/golang.org/x/sys/unix/{zsyscall_freebsd_amd64.go => zsyscall_freebsd_arm64.go} (90%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_linux_s390x.go => zsyscall_linux.go} (79%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+ copy vendor/golang.org/x/sys/unix/{zsyscall_freebsd_amd64.go => zsyscall_netbsd_arm64.go} (92%)
+ copy vendor/golang.org/x/sys/unix/{zsyscall_darwin_386.go => zsyscall_openbsd_arm64.go} (87%)
+ copy vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_386.go} (99%)
+ copy vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_amd64.go} (91%)
+ copy vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_arm.go} (99%)
+ rename vendor/golang.org/x/sys/unix/{zsysctl_openbsd.go => zsysctl_openbsd_arm64.go} (91%)
+ create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+ copy vendor/golang.org/x/sys/unix/{zsysnum_linux_arm64.go => zsysnum_linux_riscv64.go} (92%)
+ copy vendor/golang.org/x/sys/unix/{zsysnum_netbsd_386.go => zsysnum_netbsd_arm64.go} (99%)
+ copy vendor/golang.org/x/sys/unix/{zsysnum_openbsd_arm.go => zsysnum_openbsd_arm64.go} (67%)
+ delete mode 100644 vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+ copy vendor/golang.org/x/sys/unix/{ztypes_freebsd_amd64.go => ztypes_freebsd_arm64.go} (54%)
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux.go
+ create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+ copy vendor/golang.org/x/sys/unix/{ztypes_netbsd_amd64.go => ztypes_netbsd_arm64.go} (73%)
+ copy vendor/golang.org/x/sys/unix/{ztypes_openbsd_amd64.go => ztypes_openbsd_arm64.go} (58%)
+
+diff --git a/Gopkg.lock b/Gopkg.lock
+index b4333103..01a867d5 100644
+--- a/Gopkg.lock
++++ b/Gopkg.lock
+@@ -112,11 +112,11 @@
+ 
+ [[projects]]
+   branch = "master"
+-  digest = "1:51912e607c5e28a89fdc7e41d3377b92086ab7f76ded236765dbf98d0a704c5d"
++  digest = "1:f8181d8aa1e268255316ec12ab5402d4f671b1da6d7ad40abdf2f92c0404b67d"
+   name = "golang.org/x/sys"
+   packages = ["unix"]
+   pruneopts = "NUT"
+-  revision = "bb24a47a89eac6c1227fbcb2ae37a8b9ed323366"
++  revision = "1957bb5e6d1f523308b49060df02171d06ddfc77"
+ 
+ [[projects]]
+   branch = "v2"
+diff --git a/vendor/golang.org/x/sys/unix/affinity_linux.go b/vendor/golang.org/x/sys/unix/affinity_linux.go
+new file mode 100644
+index 00000000..6e5c81ac
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/affinity_linux.go
+@@ -0,0 +1,86 @@
++// Copyright 2018 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.
++
++// CPU affinity functions
++
++package unix
++
++import (
++	"math/bits"
++	"unsafe"
++)
++
++const cpuSetSize = _CPU_SETSIZE / _NCPUBITS
++
++// CPUSet represents a CPU affinity mask.
++type CPUSet [cpuSetSize]cpuMask
++
++func schedAffinity(trap uintptr, pid int, set *CPUSet) error {
++	_, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set)))
++	if e != 0 {
++		return errnoErr(e)
++	}
++	return nil
++}
++
++// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid.
++// If pid is 0 the calling thread is used.
++func SchedGetaffinity(pid int, set *CPUSet) error {
++	return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set)
++}
++
++// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid.
++// If pid is 0 the calling thread is used.
++func SchedSetaffinity(pid int, set *CPUSet) error {
++	return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set)
++}
++
++// Zero clears the set s, so that it contains no CPUs.
++func (s *CPUSet) Zero() {
++	for i := range s {
++		s[i] = 0
++	}
++}
++
++func cpuBitsIndex(cpu int) int {
++	return cpu / _NCPUBITS
++}
++
++func cpuBitsMask(cpu int) cpuMask {
++	return cpuMask(1 << (uint(cpu) % _NCPUBITS))
++}
++
++// Set adds cpu to the set s.
++func (s *CPUSet) Set(cpu int) {
++	i := cpuBitsIndex(cpu)
++	if i < len(s) {
++		s[i] |= cpuBitsMask(cpu)
++	}
++}
++
++// Clear removes cpu from the set s.
++func (s *CPUSet) Clear(cpu int) {
++	i := cpuBitsIndex(cpu)
++	if i < len(s) {
++		s[i] &^= cpuBitsMask(cpu)
++	}
++}
++
++// IsSet reports whether cpu is in the set s.
++func (s *CPUSet) IsSet(cpu int) bool {
++	i := cpuBitsIndex(cpu)
++	if i < len(s) {
++		return s[i]&cpuBitsMask(cpu) != 0
++	}
++	return false
++}
++
++// Count returns the number of CPUs in the set s.
++func (s *CPUSet) Count() int {
++	c := 0
++	for _, b := range s {
++		c += bits.OnesCount64(uint64(b))
++	}
++	return c
++}
+diff --git a/vendor/golang.org/x/sys/unix/aliases.go b/vendor/golang.org/x/sys/unix/aliases.go
+new file mode 100644
+index 00000000..951fce4d
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/aliases.go
+@@ -0,0 +1,14 @@
++// Copyright 2018 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
++// +build go1.9
++
++package unix
++
++import "syscall"
++
++type Signal = syscall.Signal
++type Errno = syscall.Errno
++type SysProcAttr = syscall.SysProcAttr
+diff --git a/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+new file mode 100644
+index 00000000..06f84b85
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s
+@@ -0,0 +1,17 @@
++// Copyright 2018 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 ppc64, AIX are implemented in runtime/syscall_aix.go
++//
++
++TEXT ·syscall6(SB),NOSPLIT,$0-88
++	JMP	syscall·syscall6(SB)
++
++TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
++	JMP	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
+index d5ed6726..603dd572 100644
+--- a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
++++ b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
+@@ -13,17 +13,17 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-64
++TEXT	·Syscall(SB),NOSPLIT,$0-56
+ 	JMP	syscall·Syscall(SB)
+ 
+-TEXT	·Syscall6(SB),NOSPLIT,$0-88
++TEXT	·Syscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·Syscall6(SB)
+ 
+-TEXT	·Syscall9(SB),NOSPLIT,$0-112
++TEXT	·Syscall9(SB),NOSPLIT,$0-104
+ 	JMP	syscall·Syscall9(SB)
+ 
+-TEXT ·RawSyscall(SB),NOSPLIT,$0-64
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ 	JMP	syscall·RawSyscall(SB)
+ 
+-TEXT	·RawSyscall6(SB),NOSPLIT,$0-88
++TEXT	·RawSyscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·RawSyscall6(SB)
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
+similarity index 71%
+copy from vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+copy to vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
+index 724e580c..d9318cbf 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s
+@@ -1,15 +1,13 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2018 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
++// System call support for ARM64, FreeBSD
+ //
+ 
+ // Just jump to package syscall's implementation for all these functions.
+@@ -21,7 +19,10 @@ TEXT	·Syscall(SB),NOSPLIT,$0-56
+ TEXT	·Syscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·Syscall6(SB)
+ 
+-TEXT	·RawSyscall(SB),NOSPLIT,$0-56
++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
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s
+index 4db29093..448bebbb 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_386.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s
+@@ -10,21 +10,51 @@
+ // System calls for 386, Linux
+ //
+ 
++// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80
++// instead of the glibc-specific "CALL 0x10(GS)".
++#define INVOKE_SYSCALL	INT	$0x80
++
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-28
++TEXT ·Syscall(SB),NOSPLIT,$0-28
+ 	JMP	syscall·Syscall(SB)
+ 
+-TEXT	·Syscall6(SB),NOSPLIT,$0-40
++TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ 	JMP	syscall·Syscall6(SB)
+ 
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
++	CALL	runtime·entersyscall(SB)
++	MOVL	trap+0(FP), AX  // syscall entry
++	MOVL	a1+4(FP), BX
++	MOVL	a2+8(FP), CX
++	MOVL	a3+12(FP), DX
++	MOVL	$0, SI
++	MOVL	$0, DI
++	INVOKE_SYSCALL
++	MOVL	AX, r1+16(FP)
++	MOVL	DX, r2+20(FP)
++	CALL	runtime·exitsyscall(SB)
++	RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ 	JMP	syscall·RawSyscall(SB)
+ 
+-TEXT	·RawSyscall6(SB),NOSPLIT,$0-40
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ 	JMP	syscall·RawSyscall6(SB)
+ 
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
++	MOVL	trap+0(FP), AX  // syscall entry
++	MOVL	a1+4(FP), BX
++	MOVL	a2+8(FP), CX
++	MOVL	a3+12(FP), DX
++	MOVL	$0, SI
++	MOVL	$0, DI
++	INVOKE_SYSCALL
++	MOVL	AX, r1+16(FP)
++	MOVL	DX, r2+20(FP)
++	RET
++
+ TEXT ·socketcall(SB),NOSPLIT,$0-36
+ 	JMP	syscall·socketcall(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
+index 44e25c62..c6468a95 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
+@@ -13,17 +13,45 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ 	JMP	syscall·Syscall(SB)
+ 
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·Syscall6(SB)
+ 
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++	CALL	runtime·entersyscall(SB)
++	MOVQ	a1+8(FP), DI
++	MOVQ	a2+16(FP), SI
++	MOVQ	a3+24(FP), DX
++	MOVQ	$0, R10
++	MOVQ	$0, R8
++	MOVQ	$0, R9
++	MOVQ	trap+0(FP), AX	// syscall entry
++	SYSCALL
++	MOVQ	AX, r1+32(FP)
++	MOVQ	DX, r2+40(FP)
++	CALL	runtime·exitsyscall(SB)
++	RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ 	JMP	syscall·RawSyscall(SB)
+ 
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·RawSyscall6(SB)
+ 
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++	MOVQ	a1+8(FP), DI
++	MOVQ	a2+16(FP), SI
++	MOVQ	a3+24(FP), DX
++	MOVQ	$0, R10
++	MOVQ	$0, R8
++	MOVQ	$0, R9
++	MOVQ	trap+0(FP), AX	// syscall entry
++	SYSCALL
++	MOVQ	AX, r1+32(FP)
++	MOVQ	DX, r2+40(FP)
++	RET
++
+ 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
+index cf0b5746..cf0f3575 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_arm.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
+@@ -13,17 +13,44 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-28
++TEXT ·Syscall(SB),NOSPLIT,$0-28
+ 	B	syscall·Syscall(SB)
+ 
+-TEXT	·Syscall6(SB),NOSPLIT,$0-40
++TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ 	B	syscall·Syscall6(SB)
+ 
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
++	BL	runtime·entersyscall(SB)
++	MOVW	trap+0(FP), R7
++	MOVW	a1+4(FP), R0
++	MOVW	a2+8(FP), R1
++	MOVW	a3+12(FP), R2
++	MOVW	$0, R3
++	MOVW	$0, R4
++	MOVW	$0, R5
++	SWI	$0
++	MOVW	R0, r1+16(FP)
++	MOVW	$0, R0
++	MOVW	R0, r2+20(FP)
++	BL	runtime·exitsyscall(SB)
++	RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ 	B	syscall·RawSyscall(SB)
+ 
+-TEXT	·RawSyscall6(SB),NOSPLIT,$0-40
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ 	B	syscall·RawSyscall6(SB)
+ 
+-TEXT ·seek(SB),NOSPLIT,$0-32
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
++	MOVW	trap+0(FP), R7	// syscall entry
++	MOVW	a1+4(FP), R0
++	MOVW	a2+8(FP), R1
++	MOVW	a3+12(FP), R2
++	SWI	$0
++	MOVW	R0, r1+16(FP)
++	MOVW	$0, R0
++	MOVW	R0, r2+20(FP)
++	RET
++
++TEXT ·seek(SB),NOSPLIT,$0-28
+ 	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
+index 4be9bfed..afe6fdf6 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
+@@ -11,14 +11,42 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ 	B	syscall·Syscall(SB)
+ 
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ 	B	syscall·Syscall6(SB)
+ 
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++	BL	runtime·entersyscall(SB)
++	MOVD	a1+8(FP), R0
++	MOVD	a2+16(FP), R1
++	MOVD	a3+24(FP), R2
++	MOVD	$0, R3
++	MOVD	$0, R4
++	MOVD	$0, R5
++	MOVD	trap+0(FP), R8	// syscall entry
++	SVC
++	MOVD	R0, r1+32(FP)	// r1
++	MOVD	R1, r2+40(FP)	// r2
++	BL	runtime·exitsyscall(SB)
++	RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ 	B	syscall·RawSyscall(SB)
+ 
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ 	B	syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++	MOVD	a1+8(FP), R0
++	MOVD	a2+16(FP), R1
++	MOVD	a3+24(FP), R2
++	MOVD	$0, R3
++	MOVD	$0, R4
++	MOVD	$0, R5
++	MOVD	trap+0(FP), R8	// syscall entry
++	SVC
++	MOVD	R0, r1+32(FP)
++	MOVD	R1, r2+40(FP)
++	RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+index 724e580c..ab9d6383 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+@@ -15,14 +15,42 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-56
++TEXT ·Syscall(SB),NOSPLIT,$0-56
+ 	JMP	syscall·Syscall(SB)
+ 
+-TEXT	·Syscall6(SB),NOSPLIT,$0-80
++TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·Syscall6(SB)
+ 
+-TEXT	·RawSyscall(SB),NOSPLIT,$0-56
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++	JAL	runtime·entersyscall(SB)
++	MOVV	a1+8(FP), R4
++	MOVV	a2+16(FP), R5
++	MOVV	a3+24(FP), R6
++	MOVV	R0, R7
++	MOVV	R0, R8
++	MOVV	R0, R9
++	MOVV	trap+0(FP), R2	// syscall entry
++	SYSCALL
++	MOVV	R2, r1+32(FP)
++	MOVV	R3, r2+40(FP)
++	JAL	runtime·exitsyscall(SB)
++	RET
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ 	JMP	syscall·RawSyscall(SB)
+ 
+-TEXT	·RawSyscall6(SB),NOSPLIT,$0-80
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ 	JMP	syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++	MOVV	a1+8(FP), R4
++	MOVV	a2+16(FP), R5
++	MOVV	a3+24(FP), R6
++	MOVV	R0, R7
++	MOVV	R0, R8
++	MOVV	R0, R9
++	MOVV	trap+0(FP), R2	// syscall entry
++	SYSCALL
++	MOVV	R2, r1+32(FP)
++	MOVV	R3, r2+40(FP)
++	RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
+index 2ea42575..99e53990 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s
+@@ -15,17 +15,40 @@
+ // Just jump to package syscall's implementation for all these functions.
+ // The runtime may know about them.
+ 
+-TEXT	·Syscall(SB),NOSPLIT,$0-28
++TEXT ·Syscall(SB),NOSPLIT,$0-28
+ 	JMP syscall·Syscall(SB)
+ 
+-TEXT	·Syscall6(SB),NOSPLIT,$0-40
++TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ 	JMP syscall·Syscall6(SB)
+ 
+-TEXT	·Syscall9(SB),NOSPLIT,$0-52
++TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ 	JMP syscall·Syscall9(SB)
+ 
+-TEXT	·RawSyscall(SB),NOSPLIT,$0-28
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-24
++	JAL	runtime·entersyscall(SB)
++	MOVW	a1+4(FP), R4
++	MOVW	a2+8(FP), R5
++	MOVW	a3+12(FP), R6
++	MOVW	R0, R7
++	MOVW	trap+0(FP), R2	// syscall entry
++	SYSCALL
++	MOVW	R2, r1+16(FP)	// r1
++	MOVW	R3, r2+20(FP)	// r2
++	JAL	runtime·exitsyscall(SB)
++	RET
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ 	JMP syscall·RawSyscall(SB)
+ 
+-TEXT	·RawSyscall6(SB),NOSPLIT,$0-40
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ 	JMP syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24
++	MOVW	a1+4(FP), R4
++	MOVW	a2+8(FP), R5
++	MOVW	a3+12(FP), R6
++	MOVW	trap+0(FP), R2	// syscall entry
++	SYSCALL
++	MOVW	R2, r1+16(FP)
++	MOVW	R3, r2+20(FP)
++	RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
+index 8d231feb..88f71255 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
+@@ -15,14 +15,30 @@
+ // 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)
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++	BL	runtime·entersyscall(SB)
++	MOVD	a1+8(FP), R3
++	MOVD	a2+16(FP), R4
++	MOVD	a3+24(FP), R5
++	MOVD	R0, R6
++	MOVD	R0, R7
++	MOVD	R0, R8
++	MOVD	trap+0(FP), R9	// syscall entry
++	SYSCALL R9
++	MOVD	R3, r1+32(FP)
++	MOVD	R4, r2+40(FP)
++	BL	runtime·exitsyscall(SB)
++	RET
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++	MOVD	a1+8(FP), R3
++	MOVD	a2+16(FP), R4
++	MOVD	a3+24(FP), R5
++	MOVD	R0, R6
++	MOVD	R0, R7
++	MOVD	R0, R8
++	MOVD	trap+0(FP), R9	// syscall entry
++	SYSCALL R9
++	MOVD	R3, r1+32(FP)
++	MOVD	R4, r2+40(FP)
++	RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+new file mode 100644
+index 00000000..3cfefed2
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s
+@@ -0,0 +1,47 @@
++// Copyright 2019 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 riscv64,!gccgo
++
++#include "textflag.h"
++
++//
++// System calls for linux/riscv64.
++//
++// Where available, just jump to package syscall's implementation of
++// these functions.
++
++TEXT ·Syscall(SB),NOSPLIT,$0-56
++	JMP	syscall·Syscall(SB)
++
++TEXT ·Syscall6(SB),NOSPLIT,$0-80
++	JMP	syscall·Syscall6(SB)
++
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++	CALL	runtime·entersyscall(SB)
++	MOV	a1+8(FP), A0
++	MOV	a2+16(FP), A1
++	MOV	a3+24(FP), A2
++	MOV	trap+0(FP), A7	// syscall entry
++	ECALL
++	MOV	A0, r1+32(FP)	// r1
++	MOV	A1, r2+40(FP)	// r2
++	CALL	runtime·exitsyscall(SB)
++	RET
++
++TEXT ·RawSyscall(SB),NOSPLIT,$0-56
++	JMP	syscall·RawSyscall(SB)
++
++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
++	JMP	syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++	MOV	a1+8(FP), A0
++	MOV	a2+16(FP), A1
++	MOV	a3+24(FP), A2
++	MOV	trap+0(FP), A7	// syscall entry
++	ECALL
++	MOV	A0, r1+32(FP)
++	MOV	A1, r2+40(FP)
++	RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
+index 11889859..a5a863c6 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
++++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
+@@ -21,8 +21,36 @@ TEXT ·Syscall(SB),NOSPLIT,$0-56
+ TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ 	BR	syscall·Syscall6(SB)
+ 
++TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
++	BL	runtime·entersyscall(SB)
++	MOVD	a1+8(FP), R2
++	MOVD	a2+16(FP), R3
++	MOVD	a3+24(FP), R4
++	MOVD	$0, R5
++	MOVD	$0, R6
++	MOVD	$0, R7
++	MOVD	trap+0(FP), R1	// syscall entry
++	SYSCALL
++	MOVD	R2, r1+32(FP)
++	MOVD	R3, r2+40(FP)
++	BL	runtime·exitsyscall(SB)
++	RET
++
+ TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ 	BR	syscall·RawSyscall(SB)
+ 
+ TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ 	BR	syscall·RawSyscall6(SB)
++
++TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
++	MOVD	a1+8(FP), R2
++	MOVD	a2+16(FP), R3
++	MOVD	a3+24(FP), R4
++	MOVD	$0, R5
++	MOVD	$0, R6
++	MOVD	$0, R7
++	MOVD	trap+0(FP), R1	// syscall entry
++	SYSCALL
++	MOVD	R2, r1+32(FP)
++	MOVD	R3, r2+40(FP)
++	RET
+diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
+similarity index 60%
+copy from vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+copy to vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
+index 724e580c..6f98ba5a 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s
+@@ -1,28 +1,29 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2019 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
++// System call support for ARM64, 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)
++	B	syscall·Syscall(SB)
+ 
+ TEXT	·Syscall6(SB),NOSPLIT,$0-80
+-	JMP	syscall·Syscall6(SB)
++	B	syscall·Syscall6(SB)
++
++TEXT	·Syscall9(SB),NOSPLIT,$0-104
++	B	syscall·Syscall9(SB)
+ 
+ TEXT	·RawSyscall(SB),NOSPLIT,$0-56
+-	JMP	syscall·RawSyscall(SB)
++	B	syscall·RawSyscall(SB)
+ 
+ TEXT	·RawSyscall6(SB),NOSPLIT,$0-80
+-	JMP	syscall·RawSyscall6(SB)
++	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_openbsd_arm64.s
+similarity index 76%
+copy from vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
+copy to vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s
+index 724e580c..0cedea3d 100644
+--- a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
++++ b/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s
+@@ -1,15 +1,13 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2019 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
++// System call support for arm64, OpenBSD
+ //
+ 
+ // Just jump to package syscall's implementation for all these functions.
+@@ -21,6 +19,9 @@ TEXT	·Syscall(SB),NOSPLIT,$0-56
+ 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)
+ 
+diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
+index 6e322969..a178a614 100644
+--- a/vendor/golang.org/x/sys/unix/bluetooth_linux.go
++++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
+@@ -23,6 +23,7 @@ const (
+ 	HCI_CHANNEL_USER    = 1
+ 	HCI_CHANNEL_MONITOR = 2
+ 	HCI_CHANNEL_CONTROL = 3
++	HCI_CHANNEL_LOGGING = 4
+ )
+ 
+ // Socketoption Level
+diff --git a/vendor/golang.org/x/sys/unix/cap_freebsd.go b/vendor/golang.org/x/sys/unix/cap_freebsd.go
+index 83b6bcea..df520487 100644
+--- a/vendor/golang.org/x/sys/unix/cap_freebsd.go
++++ b/vendor/golang.org/x/sys/unix/cap_freebsd.go
+@@ -7,7 +7,7 @@
+ package unix
+ 
+ import (
+-	errorspkg "errors"
++	"errors"
+ 	"fmt"
+ )
+ 
+@@ -60,26 +60,26 @@ func CapRightsSet(rights *CapRights, setrights []uint64) error {
+ 
+ 	n := caparsize(rights)
+ 	if n < capArSizeMin || n > capArSizeMax {
+-		return errorspkg.New("bad rights size")
++		return errors.New("bad rights size")
+ 	}
+ 
+ 	for _, right := range setrights {
+ 		if caprver(right) != CAP_RIGHTS_VERSION_00 {
+-			return errorspkg.New("bad right version")
++			return errors.New("bad right version")
+ 		}
+ 		i, err := rightToIndex(right)
+ 		if err != nil {
+ 			return err
+ 		}
+ 		if i >= n {
+-			return errorspkg.New("index overflow")
++			return errors.New("index overflow")
+ 		}
+ 		if capidxbit(rights.Rights[i]) != capidxbit(right) {
+-			return errorspkg.New("index mismatch")
++			return errors.New("index mismatch")
+ 		}
+ 		rights.Rights[i] |= right
+ 		if capidxbit(rights.Rights[i]) != capidxbit(right) {
+-			return errorspkg.New("index mismatch (after assign)")
++			return errors.New("index mismatch (after assign)")
+ 		}
+ 	}
+ 
+@@ -95,26 +95,26 @@ func CapRightsClear(rights *CapRights, clearrights []uint64) error {
+ 
+ 	n := caparsize(rights)
+ 	if n < capArSizeMin || n > capArSizeMax {
+-		return errorspkg.New("bad rights size")
++		return errors.New("bad rights size")
+ 	}
+ 
+ 	for _, right := range clearrights {
+ 		if caprver(right) != CAP_RIGHTS_VERSION_00 {
+-			return errorspkg.New("bad right version")
++			return errors.New("bad right version")
+ 		}
+ 		i, err := rightToIndex(right)
+ 		if err != nil {
+ 			return err
+ 		}
+ 		if i >= n {
+-			return errorspkg.New("index overflow")
++			return errors.New("index overflow")
+ 		}
+ 		if capidxbit(rights.Rights[i]) != capidxbit(right) {
+-			return errorspkg.New("index mismatch")
++			return errors.New("index mismatch")
+ 		}
+ 		rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF)
+ 		if capidxbit(rights.Rights[i]) != capidxbit(right) {
+-			return errorspkg.New("index mismatch (after assign)")
++			return errors.New("index mismatch (after assign)")
+ 		}
+ 	}
+ 
+@@ -130,22 +130,22 @@ func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) {
+ 
+ 	n := caparsize(rights)
+ 	if n < capArSizeMin || n > capArSizeMax {
+-		return false, errorspkg.New("bad rights size")
++		return false, errors.New("bad rights size")
+ 	}
+ 
+ 	for _, right := range setrights {
+ 		if caprver(right) != CAP_RIGHTS_VERSION_00 {
+-			return false, errorspkg.New("bad right version")
++			return false, errors.New("bad right version")
+ 		}
+ 		i, err := rightToIndex(right)
+ 		if err != nil {
+ 			return false, err
+ 		}
+ 		if i >= n {
+-			return false, errorspkg.New("index overflow")
++			return false, errors.New("index overflow")
+ 		}
+ 		if capidxbit(rights.Rights[i]) != capidxbit(right) {
+-			return false, errorspkg.New("index mismatch")
++			return false, errors.New("index mismatch")
+ 		}
+ 		if (rights.Rights[i] & right) != right {
+ 			return false, nil
+diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go
+index a96f0ebc..3a6ac648 100644
+--- a/vendor/golang.org/x/sys/unix/constants.go
++++ b/vendor/golang.org/x/sys/unix/constants.go
+@@ -2,7 +2,7 @@
+ // 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+new file mode 100644
+index 00000000..5e5fb451
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc.go
+@@ -0,0 +1,27 @@
++// Copyright 2018 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 aix
++// +build ppc
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used by AIX.
++
++package unix
++
++// Major returns the major component of a Linux device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev >> 16) & 0xffff)
++}
++
++// Minor returns the minor component of a Linux device number.
++func Minor(dev uint64) uint32 {
++	return uint32(dev & 0xffff)
++}
++
++// Mkdev returns a Linux device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++	return uint64(((major) << 16) | (minor))
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+new file mode 100644
+index 00000000..8b401244
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go
+@@ -0,0 +1,29 @@
++// Copyright 2018 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 aix
++// +build ppc64
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used AIX.
++
++package unix
++
++// Major returns the major component of a Linux device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev & 0x3fffffff00000000) >> 32)
++}
++
++// Minor returns the minor component of a Linux device number.
++func Minor(dev uint64) uint32 {
++	return uint32((dev & 0x00000000ffffffff) >> 0)
++}
++
++// Mkdev returns a Linux device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++	var DEVNO64 uint64
++	DEVNO64 = 0x8000000000000000
++	return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_darwin.go b/vendor/golang.org/x/sys/unix/dev_darwin.go
+new file mode 100644
+index 00000000..8d1dc0fa
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_darwin.go
+@@ -0,0 +1,24 @@
++// Copyright 2017 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.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in Darwin's sys/types.h header.
++
++package unix
++
++// Major returns the major component of a Darwin device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev >> 24) & 0xff)
++}
++
++// Minor returns the minor component of a Darwin device number.
++func Minor(dev uint64) uint32 {
++	return uint32(dev & 0xffffff)
++}
++
++// Mkdev returns a Darwin device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++	return (uint64(major) << 24) | uint64(minor)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/vendor/golang.org/x/sys/unix/dev_dragonfly.go
+new file mode 100644
+index 00000000..8502f202
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_dragonfly.go
+@@ -0,0 +1,30 @@
++// Copyright 2017 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.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in Dragonfly's sys/types.h header.
++//
++// The information below is extracted and adapted from sys/types.h:
++//
++// Minor gives a cookie instead of an index since in order to avoid changing the
++// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
++// devices that don't use them.
++
++package unix
++
++// Major returns the major component of a DragonFlyBSD device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev >> 8) & 0xff)
++}
++
++// Minor returns the minor component of a DragonFlyBSD device number.
++func Minor(dev uint64) uint32 {
++	return uint32(dev & 0xffff00ff)
++}
++
++// Mkdev returns a DragonFlyBSD device number generated from the given major and
++// minor components.
++func Mkdev(major, minor uint32) uint64 {
++	return (uint64(major) << 8) | uint64(minor)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_freebsd.go b/vendor/golang.org/x/sys/unix/dev_freebsd.go
+new file mode 100644
+index 00000000..eba3b4bd
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_freebsd.go
+@@ -0,0 +1,30 @@
++// Copyright 2017 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.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in FreeBSD's sys/types.h header.
++//
++// The information below is extracted and adapted from sys/types.h:
++//
++// Minor gives a cookie instead of an index since in order to avoid changing the
++// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
++// devices that don't use them.
++
++package unix
++
++// Major returns the major component of a FreeBSD device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev >> 8) & 0xff)
++}
++
++// Minor returns the minor component of a FreeBSD device number.
++func Minor(dev uint64) uint32 {
++	return uint32(dev & 0xffff00ff)
++}
++
++// Mkdev returns a FreeBSD device number generated from the given major and
++// minor components.
++func Mkdev(major, minor uint32) uint64 {
++	return (uint64(major) << 8) | uint64(minor)
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_linux.go b/vendor/golang.org/x/sys/unix/dev_linux.go
+index c902c39e..d165d6f3 100644
+--- a/vendor/golang.org/x/sys/unix/dev_linux.go
++++ b/vendor/golang.org/x/sys/unix/dev_linux.go
+@@ -34,9 +34,9 @@ func Minor(dev uint64) uint32 {
+ // Mkdev returns a Linux device number generated from the given major and minor
+ // components.
+ func Mkdev(major, minor uint32) uint64 {
+-	dev := uint64((major & 0x00000fff) << 8)
+-	dev |= uint64((major & 0xfffff000) << 32)
+-	dev |= uint64((minor & 0x000000ff) << 0)
+-	dev |= uint64((minor & 0xffffff00) << 12)
++	dev := (uint64(major) & 0x00000fff) << 8
++	dev |= (uint64(major) & 0xfffff000) << 32
++	dev |= (uint64(minor) & 0x000000ff) << 0
++	dev |= (uint64(minor) & 0xffffff00) << 12
+ 	return dev
+ }
+diff --git a/vendor/golang.org/x/sys/unix/dev_netbsd.go b/vendor/golang.org/x/sys/unix/dev_netbsd.go
+new file mode 100644
+index 00000000..b4a203d0
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_netbsd.go
+@@ -0,0 +1,29 @@
++// Copyright 2017 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.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in NetBSD's sys/types.h header.
++
++package unix
++
++// Major returns the major component of a NetBSD device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev & 0x000fff00) >> 8)
++}
++
++// Minor returns the minor component of a NetBSD device number.
++func Minor(dev uint64) uint32 {
++	minor := uint32((dev & 0x000000ff) >> 0)
++	minor |= uint32((dev & 0xfff00000) >> 12)
++	return minor
++}
++
++// Mkdev returns a NetBSD device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++	dev := (uint64(major) << 8) & 0x000fff00
++	dev |= (uint64(minor) << 12) & 0xfff00000
++	dev |= (uint64(minor) << 0) & 0x000000ff
++	return dev
++}
+diff --git a/vendor/golang.org/x/sys/unix/dev_openbsd.go b/vendor/golang.org/x/sys/unix/dev_openbsd.go
+new file mode 100644
+index 00000000..f3430c42
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/dev_openbsd.go
+@@ -0,0 +1,29 @@
++// Copyright 2017 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.
++
++// Functions to access/create device major and minor numbers matching the
++// encoding used in OpenBSD's sys/types.h header.
++
++package unix
++
++// Major returns the major component of an OpenBSD device number.
++func Major(dev uint64) uint32 {
++	return uint32((dev & 0x0000ff00) >> 8)
++}
++
++// Minor returns the minor component of an OpenBSD device number.
++func Minor(dev uint64) uint32 {
++	minor := uint32((dev & 0x000000ff) >> 0)
++	minor |= uint32((dev & 0xffff0000) >> 8)
++	return minor
++}
++
++// Mkdev returns an OpenBSD device number generated from the given major and minor
++// components.
++func Mkdev(major, minor uint32) uint64 {
++	dev := (uint64(major) << 8) & 0x0000ff00
++	dev |= (uint64(minor) << 8) & 0xffff0000
++	dev |= (uint64(minor) << 0) & 0x000000ff
++	return dev
++}
+diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go
+index bd475812..304016b6 100644
+--- a/vendor/golang.org/x/sys/unix/dirent.go
++++ b/vendor/golang.org/x/sys/unix/dirent.go
+@@ -2,7 +2,7 @@
+ // 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
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go
+index 085df2d8..bcdb5d30 100644
+--- a/vendor/golang.org/x/sys/unix/endian_little.go
++++ b/vendor/golang.org/x/sys/unix/endian_little.go
+@@ -2,7 +2,7 @@
+ // 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 mipsle mips64le
++// +build 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le riscv64
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go
+index 45e281a0..84178b0a 100644
+--- a/vendor/golang.org/x/sys/unix/env_unix.go
++++ b/vendor/golang.org/x/sys/unix/env_unix.go
+@@ -1,8 +1,8 @@
+-// Copyright 2010 The Go Authors.  All rights reserved.
++// 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
++// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ // Unix environment variables.
+ 
+@@ -25,3 +25,7 @@ func Clearenv() {
+ func Environ() []string {
+ 	return syscall.Environ()
+ }
++
++func Unsetenv(key string) error {
++	return syscall.Unsetenv(key)
++}
+diff --git a/vendor/golang.org/x/sys/unix/env_unset.go b/vendor/golang.org/x/sys/unix/env_unset.go
+deleted file mode 100644
+index 92222625..00000000
+--- a/vendor/golang.org/x/sys/unix/env_unset.go
++++ /dev/null
+@@ -1,14 +0,0 @@
+-// 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/errors_freebsd_386.go b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
+index c56bc8b0..761db66e 100644
+--- a/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_386.go
+@@ -8,6 +8,7 @@
+ package unix
+ 
+ const (
++	DLT_HHDLC                         = 0x79
+ 	IFF_SMART                         = 0x20
+ 	IFT_1822                          = 0x2
+ 	IFT_A12MPPSWITCH                  = 0x82
+@@ -210,13 +211,18 @@ const (
+ 	IFT_XETHER                        = 0x1a
+ 	IPPROTO_MAXID                     = 0x34
+ 	IPV6_FAITH                        = 0x1d
++	IPV6_MIN_MEMBERSHIPS              = 0x1f
+ 	IP_FAITH                          = 0x16
++	IP_MAX_SOURCE_FILTER              = 0x400
++	IP_MIN_MEMBERSHIPS                = 0x1f
+ 	MAP_NORESERVE                     = 0x40
+ 	MAP_RENAME                        = 0x20
+ 	NET_RT_MAXID                      = 0x6
+ 	RTF_PRCLONING                     = 0x10000
+ 	RTM_OLDADD                        = 0x9
+ 	RTM_OLDDEL                        = 0xa
++	RT_CACHING_CONTEXT                = 0x1
++	RT_NORTREF                        = 0x2
+ 	SIOCADDRT                         = 0x8030720a
+ 	SIOCALIFADDR                      = 0x8118691b
+ 	SIOCDELRT                         = 0x8030720b
+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
+index 3e977117..070f44b6 100644
+--- a/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_amd64.go
+@@ -8,6 +8,7 @@
+ package unix
+ 
+ const (
++	DLT_HHDLC                         = 0x79
+ 	IFF_SMART                         = 0x20
+ 	IFT_1822                          = 0x2
+ 	IFT_A12MPPSWITCH                  = 0x82
+@@ -210,13 +211,18 @@ const (
+ 	IFT_XETHER                        = 0x1a
+ 	IPPROTO_MAXID                     = 0x34
+ 	IPV6_FAITH                        = 0x1d
++	IPV6_MIN_MEMBERSHIPS              = 0x1f
+ 	IP_FAITH                          = 0x16
++	IP_MAX_SOURCE_FILTER              = 0x400
++	IP_MIN_MEMBERSHIPS                = 0x1f
+ 	MAP_NORESERVE                     = 0x40
+ 	MAP_RENAME                        = 0x20
+ 	NET_RT_MAXID                      = 0x6
+ 	RTF_PRCLONING                     = 0x10000
+ 	RTM_OLDADD                        = 0x9
+ 	RTM_OLDDEL                        = 0xa
++	RT_CACHING_CONTEXT                = 0x1
++	RT_NORTREF                        = 0x2
+ 	SIOCADDRT                         = 0x8040720a
+ 	SIOCALIFADDR                      = 0x8118691b
+ 	SIOCDELRT                         = 0x8040720b
+diff --git a/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
+new file mode 100644
+index 00000000..946dcf3f
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go
+@@ -0,0 +1,17 @@
++// Copyright 2020 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.
++
++// Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
++// them here for backwards compatibility.
++
++package unix
++
++const (
++	DLT_HHDLC            = 0x79
++	IPV6_MIN_MEMBERSHIPS = 0x1f
++	IP_MAX_SOURCE_FILTER = 0x400
++	IP_MIN_MEMBERSHIPS   = 0x1f
++	RT_CACHING_CONTEXT   = 0x1
++	RT_NORTREF           = 0x2
++)
+diff --git a/vendor/golang.org/x/sys/unix/flock.go b/vendor/golang.org/x/sys/unix/fcntl.go
+similarity index 54%
+rename from vendor/golang.org/x/sys/unix/flock.go
+rename to vendor/golang.org/x/sys/unix/fcntl.go
+index 2994ce75..4dc53486 100644
+--- a/vendor/golang.org/x/sys/unix/flock.go
++++ b/vendor/golang.org/x/sys/unix/fcntl.go
+@@ -2,16 +2,30 @@
+ // 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
++// +build 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.
++// systems by fcntl_linux_32bit.go to be SYS_FCNTL64.
+ var fcntl64Syscall uintptr = SYS_FCNTL
+ 
++func fcntl(fd int, cmd, arg int) (int, error) {
++	valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg))
++	var err error
++	if errno != 0 {
++		err = errno
++	}
++	return int(valptr), err
++}
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++	return fcntl(int(fd), cmd, arg)
++}
++
+ // 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)))
+diff --git a/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
+new file mode 100644
+index 00000000..5868a4a4
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/fcntl_darwin.go
+@@ -0,0 +1,18 @@
++// Copyright 2019 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 "unsafe"
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++	return fcntl(int(fd), cmd, arg)
++}
++
++// 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 {
++	_, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
++	return err
++}
+diff --git a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
+similarity index 100%
+rename from vendor/golang.org/x/sys/unix/flock_linux_32bit.go
+rename to vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go
+diff --git a/vendor/golang.org/x/sys/unix/fdset.go b/vendor/golang.org/x/sys/unix/fdset.go
+new file mode 100644
+index 00000000..b27be0a0
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/fdset.go
+@@ -0,0 +1,29 @@
++// Copyright 2019 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++package unix
++
++// Set adds fd to the set fds.
++func (fds *FdSet) Set(fd int) {
++	fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))
++}
++
++// Clear removes fd from the set fds.
++func (fds *FdSet) Clear(fd int) {
++	fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))
++}
++
++// IsSet returns whether fd is in the set fds.
++func (fds *FdSet) IsSet(fd int) bool {
++	return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0
++}
++
++// Zero clears the set fds.
++func (fds *FdSet) Zero() {
++	for i := range fds.Bits {
++		fds.Bits[i] = 0
++	}
++}
+diff --git a/vendor/golang.org/x/sys/unix/file_unix.go b/vendor/golang.org/x/sys/unix/file_unix.go
+deleted file mode 100644
+index 47f6a83f..00000000
+--- a/vendor/golang.org/x/sys/unix/file_unix.go
++++ /dev/null
+@@ -1,27 +0,0 @@
+-// Copyright 2017 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 (
+-	"os"
+-	"syscall"
+-)
+-
+-// FIXME: unexported function from os
+-// syscallMode returns the syscall-specific mode bits from Go's portable mode bits.
+-func syscallMode(i os.FileMode) (o uint32) {
+-	o |= uint32(i.Perm())
+-	if i&os.ModeSetuid != 0 {
+-		o |= syscall.S_ISUID
+-	}
+-	if i&os.ModeSetgid != 0 {
+-		o |= syscall.S_ISGID
+-	}
+-	if i&os.ModeSticky != 0 {
+-		o |= syscall.S_ISVTX
+-	}
+-	// No mapping for Go's ModeTemporary (plan9 only).
+-	return
+-}
+diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go
+index 94c82321..cd6f5a61 100644
+--- a/vendor/golang.org/x/sys/unix/gccgo.go
++++ b/vendor/golang.org/x/sys/unix/gccgo.go
+@@ -1,19 +1,30 @@
+-// Copyright 2015 The Go Authors.  All rights reserved.
++// 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 !aix
+ 
+ package unix
+ 
+ import "syscall"
+ 
+-// We can't use the gc-syntax .s files for gccgo.  On the plus side
++// 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 gccgoRealSyscallNoError
++func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr)
++
+ //extern gccgoRealSyscall
+ func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
+ 
++func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
++	syscall.Entersyscall()
++	r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
++	syscall.Exitsyscall()
++	return r, 0
++}
++
+ 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)
+@@ -35,6 +46,11 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ 	return r, 0, syscall.Errno(errno)
+ }
+ 
++func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) {
++	r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
++	return r, 0
++}
++
+ 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)
+diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c
+index 07f6be03..c44730c5 100644
+--- a/vendor/golang.org/x/sys/unix/gccgo_c.c
++++ b/vendor/golang.org/x/sys/unix/gccgo_c.c
+@@ -1,8 +1,9 @@
+-// Copyright 2015 The Go Authors.  All rights reserved.
++// 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 !aix
+ 
+ #include <errno.h>
+ #include <stdint.h>
+@@ -31,11 +32,8 @@ gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintp
+ 	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)))
++uintptr_t
++gccgoRealSyscallNoError(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)
+ {
++	return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ }
+diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
+index bffe1a77..251a977a 100644
+--- a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
+@@ -1,4 +1,4 @@
+-// Copyright 2015 The Go Authors.  All rights reserved.
++// 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.
+ 
+diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
+deleted file mode 100644
+index 56332692..00000000
+--- a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
++++ /dev/null
+@@ -1,20 +0,0 @@
+-// 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/ioctl.go b/vendor/golang.org/x/sys/unix/ioctl.go
+new file mode 100644
+index 00000000..3559e5dc
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ioctl.go
+@@ -0,0 +1,65 @@
++// Copyright 2018 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++package unix
++
++import (
++	"runtime"
++	"unsafe"
++)
++
++// ioctl itself should not be exposed directly, but additional get/set
++// functions for specific types are permissible.
++
++// IoctlSetInt performs an ioctl operation which sets an integer value
++// on fd, using the specified request number.
++func IoctlSetInt(fd int, req uint, value int) error {
++	return ioctl(fd, req, uintptr(value))
++}
++
++// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument.
++//
++// To change fd's window size, the req argument should be TIOCSWINSZ.
++func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
++	// TODO: if we get the chance, remove the req parameter and
++	// hardcode TIOCSWINSZ.
++	err := ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++	runtime.KeepAlive(value)
++	return err
++}
++
++// IoctlSetTermios performs an ioctl on fd with a *Termios.
++//
++// The req value will usually be TCSETA or TIOCSETA.
++func IoctlSetTermios(fd int, req uint, value *Termios) error {
++	// TODO: if we get the chance, remove the req parameter.
++	err := ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++	runtime.KeepAlive(value)
++	return err
++}
++
++// IoctlGetInt performs an ioctl operation which gets an integer value
++// from fd, using the specified request number.
++//
++// A few ioctl requests use the return value as an output parameter;
++// for those, IoctlRetInt should be used instead of this function.
++func IoctlGetInt(fd int, req uint) (int, error) {
++	var value int
++	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++	return value, err
++}
++
++func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
++	var value Winsize
++	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++	return &value, err
++}
++
++func IoctlGetTermios(fd int, req uint) (*Termios, error) {
++	var value Termios
++	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++	return &value, err
++}
+diff --git a/vendor/golang.org/x/sys/unix/mkasm_darwin.go b/vendor/golang.org/x/sys/unix/mkasm_darwin.go
+new file mode 100644
+index 00000000..6f7bb6ed
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mkasm_darwin.go
+@@ -0,0 +1,78 @@
++// Copyright 2018 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
++
++// mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go.
++//This program must be run after mksyscall.go.
++package main
++
++import (
++	"bytes"
++	"fmt"
++	"io/ioutil"
++	"log"
++	"os"
++	"strings"
++)
++
++func writeASMFile(in string, fileName string, buildTags string) {
++	trampolines := map[string]bool{}
++
++	var out bytes.Buffer
++
++	fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " "))
++	fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n")
++	fmt.Fprintf(&out, "\n")
++	fmt.Fprintf(&out, "// +build %s\n", buildTags)
++	fmt.Fprintf(&out, "\n")
++	fmt.Fprintf(&out, "#include \"textflag.h\"\n")
++	for _, line := range strings.Split(in, "\n") {
++		if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") {
++			continue
++		}
++		fn := line[5 : len(line)-13]
++		if !trampolines[fn] {
++			trampolines[fn] = true
++			fmt.Fprintf(&out, "TEXT ·%s_trampoline(SB),NOSPLIT,$0-0\n", fn)
++			fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn)
++		}
++	}
++	err := ioutil.WriteFile(fileName, out.Bytes(), 0644)
++	if err != nil {
++		log.Fatalf("can't write %s: %s", fileName, err)
++	}
++}
++
++func main() {
++	in1, err := ioutil.ReadFile("syscall_darwin.go")
++	if err != nil {
++		log.Fatalf("can't open syscall_darwin.go: %s", err)
++	}
++	arch := os.Args[1]
++	in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch))
++	if err != nil {
++		log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err)
++	}
++	in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch))
++	if err != nil {
++		log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err)
++	}
++	in := string(in1) + string(in2) + string(in3)
++
++	writeASMFile(in, fmt.Sprintf("zsyscall_darwin_%s.s", arch), "go1.12")
++
++	in1, err = ioutil.ReadFile("syscall_darwin.1_13.go")
++	if err != nil {
++		log.Fatalf("can't open syscall_darwin.1_13.go: %s", err)
++	}
++	in2, err = ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.1_13.go", arch))
++	if err != nil {
++		log.Fatalf("can't open zsyscall_darwin_%s.1_13.go: %s", arch, err)
++	}
++
++	in = string(in1) + string(in2)
++
++	writeASMFile(in, fmt.Sprintf("zsyscall_darwin_%s.1_13.s", arch), "go1.13")
++}
+diff --git a/vendor/golang.org/x/sys/unix/mkmerge.go b/vendor/golang.org/x/sys/unix/mkmerge.go
+new file mode 100644
+index 00000000..8bde4501
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mkmerge.go
+@@ -0,0 +1,521 @@
++// Copyright 2020 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
++
++// mkmerge.go parses generated source files and merges common
++// consts, funcs, and types into a common source file, per GOOS.
++//
++// Usage:
++//     $ go run mkmerge.go -out MERGED FILE [FILE ...]
++//
++// Example:
++//     # Remove all common consts, funcs, and types from zerrors_linux_*.go
++//     # and write the common code into zerrors_linux.go
++//     $ go run mkmerge.go -out zerrors_linux.go zerrors_linux_*.go
++//
++// mkmerge.go performs the merge in the following steps:
++// 1. Construct the set of common code that is idential in all
++//    architecture-specific files.
++// 2. Write this common code to the merged file.
++// 3. Remove the common code from all architecture-specific files.
++package main
++
++import (
++	"bufio"
++	"bytes"
++	"flag"
++	"fmt"
++	"go/ast"
++	"go/format"
++	"go/parser"
++	"go/token"
++	"io"
++	"io/ioutil"
++	"log"
++	"os"
++	"path"
++	"path/filepath"
++	"regexp"
++	"strconv"
++	"strings"
++)
++
++const validGOOS = "aix|darwin|dragonfly|freebsd|linux|netbsd|openbsd|solaris"
++
++// getValidGOOS returns GOOS, true if filename ends with a valid "_GOOS.go"
++func getValidGOOS(filename string) (string, bool) {
++	matches := regexp.MustCompile(`_(` + validGOOS + `)\.go$`).FindStringSubmatch(filename)
++	if len(matches) != 2 {
++		return "", false
++	}
++	return matches[1], true
++}
++
++// codeElem represents an ast.Decl in a comparable way.
++type codeElem struct {
++	tok token.Token // e.g. token.CONST, token.TYPE, or token.FUNC
++	src string      // the declaration formatted as source code
++}
++
++// newCodeElem returns a codeElem based on tok and node, or an error is returned.
++func newCodeElem(tok token.Token, node ast.Node) (codeElem, error) {
++	var b strings.Builder
++	err := format.Node(&b, token.NewFileSet(), node)
++	if err != nil {
++		return codeElem{}, err
++	}
++	return codeElem{tok, b.String()}, nil
++}
++
++// codeSet is a set of codeElems
++type codeSet struct {
++	set map[codeElem]bool // true for all codeElems in the set
++}
++
++// newCodeSet returns a new codeSet
++func newCodeSet() *codeSet { return &codeSet{make(map[codeElem]bool)} }
++
++// add adds elem to c
++func (c *codeSet) add(elem codeElem) { c.set[elem] = true }
++
++// has returns true if elem is in c
++func (c *codeSet) has(elem codeElem) bool { return c.set[elem] }
++
++// isEmpty returns true if the set is empty
++func (c *codeSet) isEmpty() bool { return len(c.set) == 0 }
++
++// intersection returns a new set which is the intersection of c and a
++func (c *codeSet) intersection(a *codeSet) *codeSet {
++	res := newCodeSet()
++
++	for elem := range c.set {
++		if a.has(elem) {
++			res.add(elem)
++		}
++	}
++	return res
++}
++
++// keepCommon is a filterFn for filtering the merged file with common declarations.
++func (c *codeSet) keepCommon(elem codeElem) bool {
++	switch elem.tok {
++	case token.VAR:
++		// Remove all vars from the merged file
++		return false
++	case token.CONST, token.TYPE, token.FUNC, token.COMMENT:
++		// Remove arch-specific consts, types, functions, and file-level comments from the merged file
++		return c.has(elem)
++	case token.IMPORT:
++		// Keep imports, they are handled by filterImports
++		return true
++	}
++
++	log.Fatalf("keepCommon: invalid elem %v", elem)
++	return true
++}
++
++// keepArchSpecific is a filterFn for filtering the GOARC-specific files.
++func (c *codeSet) keepArchSpecific(elem codeElem) bool {
++	switch elem.tok {
++	case token.CONST, token.TYPE, token.FUNC:
++		// Remove common consts, types, or functions from the arch-specific file
++		return !c.has(elem)
++	}
++	return true
++}
++
++// srcFile represents a source file
++type srcFile struct {
++	name string
++	src  []byte
++}
++
++// filterFn is a helper for filter
++type filterFn func(codeElem) bool
++
++// filter parses and filters Go source code from src, removing top
++// level declarations using keep as predicate.
++// For src parameter, please see docs for parser.ParseFile.
++func filter(src interface{}, keep filterFn) ([]byte, error) {
++	// Parse the src into an ast
++	fset := token.NewFileSet()
++	f, err := parser.ParseFile(fset, "", src, parser.ParseComments)
++	if err != nil {
++		return nil, err
++	}
++	cmap := ast.NewCommentMap(fset, f, f.Comments)
++
++	// Group const/type specs on adjacent lines
++	var groups specGroups = make(map[string]int)
++	var groupID int
++
++	decls := f.Decls
++	f.Decls = f.Decls[:0]
++	for _, decl := range decls {
++		switch decl := decl.(type) {
++		case *ast.GenDecl:
++			// Filter imports, consts, types, vars
++			specs := decl.Specs
++			decl.Specs = decl.Specs[:0]
++			for i, spec := range specs {
++				elem, err := newCodeElem(decl.Tok, spec)
++				if err != nil {
++					return nil, err
++				}
++
++				// Create new group if there are empty lines between this and the previous spec
++				if i > 0 && fset.Position(specs[i-1].End()).Line < fset.Position(spec.Pos()).Line-1 {
++					groupID++
++				}
++
++				// Check if we should keep this spec
++				if keep(elem) {
++					decl.Specs = append(decl.Specs, spec)
++					groups.add(elem.src, groupID)
++				}
++			}
++			// Check if we should keep this decl
++			if len(decl.Specs) > 0 {
++				f.Decls = append(f.Decls, decl)
++			}
++		case *ast.FuncDecl:
++			// Filter funcs
++			elem, err := newCodeElem(token.FUNC, decl)
++			if err != nil {
++				return nil, err
++			}
++			if keep(elem) {
++				f.Decls = append(f.Decls, decl)
++			}
++		}
++	}
++
++	// Filter file level comments
++	if cmap[f] != nil {
++		commentGroups := cmap[f]
++		cmap[f] = cmap[f][:0]
++		for _, cGrp := range commentGroups {
++			if keep(codeElem{token.COMMENT, cGrp.Text()}) {
++				cmap[f] = append(cmap[f], cGrp)
++			}
++		}
++	}
++	f.Comments = cmap.Filter(f).Comments()
++
++	// Generate code for the filtered ast
++	var buf bytes.Buffer
++	if err = format.Node(&buf, fset, f); err != nil {
++		return nil, err
++	}
++
++	groupedSrc, err := groups.filterEmptyLines(&buf)
++	if err != nil {
++		return nil, err
++	}
++
++	return filterImports(groupedSrc)
++}
++
++// getCommonSet returns the set of consts, types, and funcs that are present in every file.
++func getCommonSet(files []srcFile) (*codeSet, error) {
++	if len(files) == 0 {
++		return nil, fmt.Errorf("no files provided")
++	}
++	// Use the first architecture file as the baseline
++	baseSet, err := getCodeSet(files[0].src)
++	if err != nil {
++		return nil, err
++	}
++
++	// Compare baseline set with other architecture files: discard any element,
++	// that doesn't exist in other architecture files.
++	for _, f := range files[1:] {
++		set, err := getCodeSet(f.src)
++		if err != nil {
++			return nil, err
++		}
++
++		baseSet = baseSet.intersection(set)
++	}
++	return baseSet, nil
++}
++
++// getCodeSet returns the set of all top-level consts, types, and funcs from src.
++// src must be string, []byte, or io.Reader (see go/parser.ParseFile docs)
++func getCodeSet(src interface{}) (*codeSet, error) {
++	set := newCodeSet()
++
++	fset := token.NewFileSet()
++	f, err := parser.ParseFile(fset, "", src, parser.ParseComments)
++	if err != nil {
++		return nil, err
++	}
++
++	for _, decl := range f.Decls {
++		switch decl := decl.(type) {
++		case *ast.GenDecl:
++			// Add const, and type declarations
++			if !(decl.Tok == token.CONST || decl.Tok == token.TYPE) {
++				break
++			}
++
++			for _, spec := range decl.Specs {
++				elem, err := newCodeElem(decl.Tok, spec)
++				if err != nil {
++					return nil, err
++				}
++
++				set.add(elem)
++			}
++		case *ast.FuncDecl:
++			// Add func declarations
++			elem, err := newCodeElem(token.FUNC, decl)
++			if err != nil {
++				return nil, err
++			}
++
++			set.add(elem)
++		}
++	}
++
++	// Add file level comments
++	cmap := ast.NewCommentMap(fset, f, f.Comments)
++	for _, cGrp := range cmap[f] {
++		set.add(codeElem{token.COMMENT, cGrp.Text()})
++	}
++
++	return set, nil
++}
++
++// importName returns the identifier (PackageName) for an imported package
++func importName(iSpec *ast.ImportSpec) (string, error) {
++	if iSpec.Name == nil {
++		name, err := strconv.Unquote(iSpec.Path.Value)
++		if err != nil {
++			return "", err
++		}
++		return path.Base(name), nil
++	}
++	return iSpec.Name.Name, nil
++}
++
++// specGroups tracks grouped const/type specs with a map of line: groupID pairs
++type specGroups map[string]int
++
++// add spec source to group
++func (s specGroups) add(src string, groupID int) error {
++	srcBytes, err := format.Source(bytes.TrimSpace([]byte(src)))
++	if err != nil {
++		return err
++	}
++	s[string(srcBytes)] = groupID
++	return nil
++}
++
++// filterEmptyLines removes empty lines within groups of const/type specs.
++// Returns the filtered source.
++func (s specGroups) filterEmptyLines(src io.Reader) ([]byte, error) {
++	scanner := bufio.NewScanner(src)
++	var out bytes.Buffer
++
++	var emptyLines bytes.Buffer
++	prevGroupID := -1 // Initialize to invalid group
++	for scanner.Scan() {
++		line := bytes.TrimSpace(scanner.Bytes())
++
++		if len(line) == 0 {
++			fmt.Fprintf(&emptyLines, "%s\n", scanner.Bytes())
++			continue
++		}
++
++		// Discard emptyLines if previous non-empty line belonged to the same
++		// group as this line
++		if src, err := format.Source(line); err == nil {
++			groupID, ok := s[string(src)]
++			if ok && groupID == prevGroupID {
++				emptyLines.Reset()
++			}
++			prevGroupID = groupID
++		}
++
++		emptyLines.WriteTo(&out)
++		fmt.Fprintf(&out, "%s\n", scanner.Bytes())
++	}
++	if err := scanner.Err(); err != nil {
++		return nil, err
++	}
++	return out.Bytes(), nil
++}
++
++// filterImports removes unused imports from fileSrc, and returns a formatted src.
++func filterImports(fileSrc []byte) ([]byte, error) {
++	fset := token.NewFileSet()
++	file, err := parser.ParseFile(fset, "", fileSrc, parser.ParseComments)
++	if err != nil {
++		return nil, err
++	}
++	cmap := ast.NewCommentMap(fset, file, file.Comments)
++
++	// create set of references to imported identifiers
++	keepImport := make(map[string]bool)
++	for _, u := range file.Unresolved {
++		keepImport[u.Name] = true
++	}
++
++	// filter import declarations
++	decls := file.Decls
++	file.Decls = file.Decls[:0]
++	for _, decl := range decls {
++		importDecl, ok := decl.(*ast.GenDecl)
++
++		// Keep non-import declarations
++		if !ok || importDecl.Tok != token.IMPORT {
++			file.Decls = append(file.Decls, decl)
++			continue
++		}
++
++		// Filter the import specs
++		specs := importDecl.Specs
++		importDecl.Specs = importDecl.Specs[:0]
++		for _, spec := range specs {
++			iSpec := spec.(*ast.ImportSpec)
++			name, err := importName(iSpec)
++			if err != nil {
++				return nil, err
++			}
++
++			if keepImport[name] {
++				importDecl.Specs = append(importDecl.Specs, iSpec)
++			}
++		}
++		if len(importDecl.Specs) > 0 {
++			file.Decls = append(file.Decls, importDecl)
++		}
++	}
++
++	// filter file.Imports
++	imports := file.Imports
++	file.Imports = file.Imports[:0]
++	for _, spec := range imports {
++		name, err := importName(spec)
++		if err != nil {
++			return nil, err
++		}
++
++		if keepImport[name] {
++			file.Imports = append(file.Imports, spec)
++		}
++	}
++	file.Comments = cmap.Filter(file).Comments()
++
++	var buf bytes.Buffer
++	err = format.Node(&buf, fset, file)
++	if err != nil {
++		return nil, err
++	}
++
++	return buf.Bytes(), nil
++}
++
++// merge extracts duplicate code from archFiles and merges it to mergeFile.
++// 1. Construct commonSet: the set of code that is idential in all archFiles.
++// 2. Write the code in commonSet to mergedFile.
++// 3. Remove the commonSet code from all archFiles.
++func merge(mergedFile string, archFiles ...string) error {
++	// extract and validate the GOOS part of the merged filename
++	goos, ok := getValidGOOS(mergedFile)
++	if !ok {
++		return fmt.Errorf("invalid GOOS in merged file name %s", mergedFile)
++	}
++
++	// Read architecture files
++	var inSrc []srcFile
++	for _, file := range archFiles {
++		src, err := ioutil.ReadFile(file)
++		if err != nil {
++			return fmt.Errorf("cannot read archfile %s: %w", file, err)
++		}
++
++		inSrc = append(inSrc, srcFile{file, src})
++	}
++
++	// 1. Construct the set of top-level declarations common for all files
++	commonSet, err := getCommonSet(inSrc)
++	if err != nil {
++		return err
++	}
++	if commonSet.isEmpty() {
++		// No common code => do not modify any files
++		return nil
++	}
++
++	// 2. Write the merged file
++	mergedSrc, err := filter(inSrc[0].src, commonSet.keepCommon)
++	if err != nil {
++		return err
++	}
++
++	f, err := os.Create(mergedFile)
++	if err != nil {
++		return err
++	}
++
++	buf := bufio.NewWriter(f)
++	fmt.Fprintln(buf, "// Code generated by mkmerge.go; DO NOT EDIT.")
++	fmt.Fprintln(buf)
++	fmt.Fprintf(buf, "// +build %s\n", goos)
++	fmt.Fprintln(buf)
++	buf.Write(mergedSrc)
++
++	err = buf.Flush()
++	if err != nil {
++		return err
++	}
++	err = f.Close()
++	if err != nil {
++		return err
++	}
++
++	// 3. Remove duplicate declarations from the architecture files
++	for _, inFile := range inSrc {
++		src, err := filter(inFile.src, commonSet.keepArchSpecific)
++		if err != nil {
++			return err
++		}
++		err = ioutil.WriteFile(inFile.name, src, 0644)
++		if err != nil {
++			return err
++		}
++	}
++	return nil
++}
++
++func main() {
++	var mergedFile string
++	flag.StringVar(&mergedFile, "out", "", "Write merged code to `FILE`")
++	flag.Parse()
++
++	// Expand wildcards
++	var filenames []string
++	for _, arg := range flag.Args() {
++		matches, err := filepath.Glob(arg)
++		if err != nil {
++			fmt.Fprintf(os.Stderr, "Invalid command line argument %q: %v\n", arg, err)
++			os.Exit(1)
++		}
++		filenames = append(filenames, matches...)
++	}
++
++	if len(filenames) < 2 {
++		// No need to merge
++		return
++	}
++
++	err := merge(mergedFile, filenames...)
++	if err != nil {
++		fmt.Fprintf(os.Stderr, "Merge failed with error: %v\n", err)
++		os.Exit(1)
++	}
++}
+diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go
+index d3ff659b..5ee1a16b 100644
+--- a/vendor/golang.org/x/sys/unix/mkpost.go
++++ b/vendor/golang.org/x/sys/unix/mkpost.go
+@@ -28,10 +28,10 @@ func main() {
+ 	if goarch == "" {
+ 		goarch = os.Getenv("GOARCH")
+ 	}
+-	// Check that we are using the new build system if we should be.
+-	if goos == "linux" && goarch != "sparc64" {
++	// Check that we are using the Docker-based build system if we should be.
++	if goos == "linux" {
+ 		if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
+-			os.Stderr.WriteString("In the new build system, mkpost should not be called directly.\n")
++			os.Stderr.WriteString("In the Docker-based build system, mkpost should not be called directly.\n")
+ 			os.Stderr.WriteString("See README.md\n")
+ 			os.Exit(1)
+ 		}
+@@ -42,6 +42,21 @@ func main() {
+ 		log.Fatal(err)
+ 	}
+ 
++	if goos == "aix" {
++		// Replace type of Atim, Mtim and Ctim by Timespec in Stat_t
++		// to avoid having both StTimespec and Timespec.
++		sttimespec := regexp.MustCompile(`_Ctype_struct_st_timespec`)
++		b = sttimespec.ReplaceAll(b, []byte("Timespec"))
++	}
++
++	// Intentionally export __val fields in Fsid and Sigset_t
++	valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__(bits|val)(\s+\S+\s+)}`)
++	b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$4}"))
++
++	// Intentionally export __fds_bits field in FdSet
++	fdSetRegex := regexp.MustCompile(`type (FdSet) struct {(\s+)X__fds_bits(\s+\S+\s+)}`)
++	b = fdSetRegex.ReplaceAll(b, []byte("type $1 struct {${2}Bits$3}"))
++
+ 	// If we have empty Ptrace structs, we should delete them. Only s390x emits
+ 	// nonempty Ptrace structs.
+ 	ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`)
+@@ -56,16 +71,31 @@ func main() {
+ 	removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`)
+ 	b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
+ 
+-	// We refuse to export private fields on s390x
+-	if goarch == "s390x" && goos == "linux" {
+-		// Remove cgo padding fields
+-		removeFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`)
+-		b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
++	// Convert [65]int8 to [65]byte in Utsname members to simplify
++	// conversion to string; see golang.org/issue/20753
++	convertUtsnameRegex := regexp.MustCompile(`((Sys|Node|Domain)name|Release|Version|Machine)(\s+)\[(\d+)\]u?int8`)
++	b = convertUtsnameRegex.ReplaceAll(b, []byte("$1$3[$4]byte"))
+ 
+-		// Remove padding, hidden, or unused fields
+-		removeFieldsRegex = regexp.MustCompile(`X_\S+`)
+-		b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
+-	}
++	// Convert [n]int8 to [n]byte in Statvfs_t members to simplify
++	// conversion to string.
++	convertStatvfsRegex := regexp.MustCompile(`((Fstype|Mnton|Mntfrom)name)(\s+)\[(\d+)\]int8`)
++	b = convertStatvfsRegex.ReplaceAll(b, []byte("$1$3[$4]byte"))
++
++	// Convert [1024]int8 to [1024]byte in Ptmget members
++	convertPtmget := regexp.MustCompile(`([SC]n)(\s+)\[(\d+)\]u?int8`)
++	b = convertPtmget.ReplaceAll(b, []byte("$1[$3]byte"))
++
++	// Remove spare fields (e.g. in Statx_t)
++	spareFieldsRegex := regexp.MustCompile(`X__spare\S*`)
++	b = spareFieldsRegex.ReplaceAll(b, []byte("_"))
++
++	// Remove cgo padding fields
++	removePaddingFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`)
++	b = removePaddingFieldsRegex.ReplaceAll(b, []byte("_"))
++
++	// Remove padding, hidden, or unused fields
++	removeFieldsRegex = regexp.MustCompile(`\b(X_\S+|Padding)`)
++	b = removeFieldsRegex.ReplaceAll(b, []byte("_"))
+ 
+ 	// Remove the first line of warning from cgo
+ 	b = b[bytes.IndexByte(b, '\n')+1:]
+@@ -78,6 +108,15 @@ func main() {
+ 	cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`)
+ 	b = cgoCommandRegex.ReplaceAll(b, []byte(replacement))
+ 
++	// Rename Stat_t time fields
++	if goos == "freebsd" && goarch == "386" {
++		// Hide Stat_t.[AMCB]tim_ext fields
++		renameStatTimeExtFieldsRegex := regexp.MustCompile(`[AMCB]tim_ext`)
++		b = renameStatTimeExtFieldsRegex.ReplaceAll(b, []byte("_"))
++	}
++	renameStatTimeFieldsRegex := regexp.MustCompile(`([AMCB])(?:irth)?time?(?:spec)?\s+(Timespec|StTimespec)`)
++	b = renameStatTimeFieldsRegex.ReplaceAll(b, []byte("${1}tim ${2}"))
++
+ 	// gofmt
+ 	b, err = format.Source(b)
+ 	if err != nil {
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall.go b/vendor/golang.org/x/sys/unix/mksyscall.go
+new file mode 100644
+index 00000000..9e540cc8
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall.go
+@@ -0,0 +1,402 @@
++// Copyright 2018 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
++
++/*
++This program reads a file containing function prototypes
++(like syscall_darwin.go) and generates system call bodies.
++The prototypes are marked by lines beginning with "//sys"
++and read like func declarations if //sys is replaced by func, but:
++	* The parameter lists must give a name for each argument.
++	  This includes return parameters.
++	* The parameter lists must give a type for each argument:
++	  the (x, y, z int) shorthand is not allowed.
++	* If the return parameter is an error number, it must be named errno.
++
++A line beginning with //sysnb is like //sys, except that the
++goroutine will not be suspended during the execution of the system
++call.  This must only be used for system calls which can never
++block, as otherwise the system call could cause all goroutines to
++hang.
++*/
++package main
++
++import (
++	"bufio"
++	"flag"
++	"fmt"
++	"os"
++	"regexp"
++	"strings"
++)
++
++var (
++	b32       = flag.Bool("b32", false, "32bit big-endian")
++	l32       = flag.Bool("l32", false, "32bit little-endian")
++	plan9     = flag.Bool("plan9", false, "plan9")
++	openbsd   = flag.Bool("openbsd", false, "openbsd")
++	netbsd    = flag.Bool("netbsd", false, "netbsd")
++	dragonfly = flag.Bool("dragonfly", false, "dragonfly")
++	arm       = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair
++	tags      = flag.String("tags", "", "build tags")
++	filename  = flag.String("output", "", "output file name (standard output if omitted)")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++	return "go run mksyscall.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++	return *tags
++}
++
++// Param is function parameter
++type Param struct {
++	Name string
++	Type string
++}
++
++// usage prints the program usage
++func usage() {
++	fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++	os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++	list = strings.TrimSpace(list)
++	if list == "" {
++		return []string{}
++	}
++	return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++	if ps == nil {
++		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++		os.Exit(1)
++	}
++	return Param{ps[1], ps[2]}
++}
++
++func main() {
++	// Get the OS and architecture (using GOARCH_TARGET if it exists)
++	goos := os.Getenv("GOOS")
++	if goos == "" {
++		fmt.Fprintln(os.Stderr, "GOOS not defined in environment")
++		os.Exit(1)
++	}
++	goarch := os.Getenv("GOARCH_TARGET")
++	if goarch == "" {
++		goarch = os.Getenv("GOARCH")
++	}
++
++	// Check that we are using the Docker-based build system if we should
++	if goos == "linux" {
++		if os.Getenv("GOLANG_SYS_BUILD") != "docker" {
++			fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n")
++			fmt.Fprintf(os.Stderr, "See README.md\n")
++			os.Exit(1)
++		}
++	}
++
++	flag.Usage = usage
++	flag.Parse()
++	if len(flag.Args()) <= 0 {
++		fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++		usage()
++	}
++
++	endianness := ""
++	if *b32 {
++		endianness = "big-endian"
++	} else if *l32 {
++		endianness = "little-endian"
++	}
++
++	libc := false
++	if goos == "darwin" && (strings.Contains(buildTags(), ",go1.12") || strings.Contains(buildTags(), ",go1.13")) {
++		libc = true
++	}
++	trampolines := map[string]bool{}
++
++	text := ""
++	for _, path := range flag.Args() {
++		file, err := os.Open(path)
++		if err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		s := bufio.NewScanner(file)
++		for s.Scan() {
++			t := s.Text()
++			t = strings.TrimSpace(t)
++			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++				continue
++			}
++
++			// Line must be of the form
++			//	func Open(path string, mode int, perm int) (fd int, errno error)
++			// Split into name, in params, out params.
++			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t)
++			if f == nil {
++				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++				os.Exit(1)
++			}
++			funct, inps, outps, sysname := f[2], f[3], f[4], f[5]
++
++			// ClockGettime doesn't have a syscall number on Darwin, only generate libc wrappers.
++			if goos == "darwin" && !libc && funct == "ClockGettime" {
++				continue
++			}
++
++			// Split argument lists on comma.
++			in := parseParamList(inps)
++			out := parseParamList(outps)
++
++			// Try in vain to keep people from editing this file.
++			// The theory is that they jump into the middle of the file
++			// without reading the header.
++			text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++
++			// Go function header.
++			outDecl := ""
++			if len(out) > 0 {
++				outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", "))
++			}
++			text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl)
++
++			// Check if err return available
++			errvar := ""
++			for _, param := range out {
++				p := parseParam(param)
++				if p.Type == "error" {
++					errvar = p.Name
++					break
++				}
++			}
++
++			// Prepare arguments to Syscall.
++			var args []string
++			n := 0
++			for _, param := range in {
++				p := parseParam(param)
++				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++					args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
++				} else if p.Type == "string" && errvar != "" {
++					text += fmt.Sprintf("\tvar _p%d *byte\n", n)
++					text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name)
++					text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++					n++
++				} else if p.Type == "string" {
++					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++					text += fmt.Sprintf("\tvar _p%d *byte\n", n)
++					text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name)
++					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++					n++
++				} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
++					// Convert slice into pointer, length.
++					// Have to be careful not to take address of &a[0] if len == 0:
++					// pass dummy pointer in that case.
++					// Used to pass nil, but some OSes or simulators reject write(fd, nil, 0).
++					text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n)
++					text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name)
++					text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n)
++					args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
++					n++
++				} else if p.Type == "int64" && (*openbsd || *netbsd) {
++					args = append(args, "0")
++					if endianness == "big-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++					} else if endianness == "little-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++					} else {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++					}
++				} else if p.Type == "int64" && *dragonfly {
++					if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil {
++						args = append(args, "0")
++					}
++					if endianness == "big-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++					} else if endianness == "little-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++					} else {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++					}
++				} else if (p.Type == "int64" || p.Type == "uint64") && endianness != "" {
++					if len(args)%2 == 1 && *arm {
++						// arm abi specifies 64-bit argument uses
++						// (even, odd) pair
++						args = append(args, "0")
++					}
++					if endianness == "big-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++					} else {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++					}
++				} else {
++					args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++				}
++			}
++
++			// Determine which form to use; pad args with zeros.
++			asm := "Syscall"
++			if nonblock != nil {
++				if errvar == "" && goos == "linux" {
++					asm = "RawSyscallNoError"
++				} else {
++					asm = "RawSyscall"
++				}
++			} else {
++				if errvar == "" && goos == "linux" {
++					asm = "SyscallNoError"
++				}
++			}
++			if len(args) <= 3 {
++				for len(args) < 3 {
++					args = append(args, "0")
++				}
++			} else if len(args) <= 6 {
++				asm += "6"
++				for len(args) < 6 {
++					args = append(args, "0")
++				}
++			} else if len(args) <= 9 {
++				asm += "9"
++				for len(args) < 9 {
++					args = append(args, "0")
++				}
++			} else {
++				fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct)
++			}
++
++			// System call number.
++			if sysname == "" {
++				sysname = "SYS_" + funct
++				sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
++				sysname = strings.ToUpper(sysname)
++			}
++
++			var libcFn string
++			if libc {
++				asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call
++				sysname = strings.TrimPrefix(sysname, "SYS_")         // remove SYS_
++				sysname = strings.ToLower(sysname)                    // lowercase
++				libcFn = sysname
++				sysname = "funcPC(libc_" + sysname + "_trampoline)"
++			}
++
++			// Actual call.
++			arglist := strings.Join(args, ", ")
++			call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist)
++
++			// Assign return values.
++			body := ""
++			ret := []string{"_", "_", "_"}
++			doErrno := false
++			for i := 0; i < len(out); i++ {
++				p := parseParam(out[i])
++				reg := ""
++				if p.Name == "err" && !*plan9 {
++					reg = "e1"
++					ret[2] = reg
++					doErrno = true
++				} else if p.Name == "err" && *plan9 {
++					ret[0] = "r0"
++					ret[2] = "e1"
++					break
++				} else {
++					reg = fmt.Sprintf("r%d", i)
++					ret[i] = reg
++				}
++				if p.Type == "bool" {
++					reg = fmt.Sprintf("%s != 0", reg)
++				}
++				if p.Type == "int64" && endianness != "" {
++					// 64-bit number in r1:r0 or r0:r1.
++					if i+2 > len(out) {
++						fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct)
++					}
++					if endianness == "big-endian" {
++						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
++					} else {
++						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
++					}
++					ret[i] = fmt.Sprintf("r%d", i)
++					ret[i+1] = fmt.Sprintf("r%d", i+1)
++				}
++				if reg != "e1" || *plan9 {
++					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++				}
++			}
++			if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
++				text += fmt.Sprintf("\t%s\n", call)
++			} else {
++				if errvar == "" && goos == "linux" {
++					// raw syscall without error on Linux, see golang.org/issue/22924
++					text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call)
++				} else {
++					text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
++				}
++			}
++			text += body
++
++			if *plan9 && ret[2] == "e1" {
++				text += "\tif int32(r0) == -1 {\n"
++				text += "\t\terr = e1\n"
++				text += "\t}\n"
++			} else if doErrno {
++				text += "\tif e1 != 0 {\n"
++				text += "\t\terr = errnoErr(e1)\n"
++				text += "\t}\n"
++			}
++			text += "\treturn\n"
++			text += "}\n\n"
++
++			if libc && !trampolines[libcFn] {
++				// some system calls share a trampoline, like read and readlen.
++				trampolines[libcFn] = true
++				// Declare assembly trampoline.
++				text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn)
++				// Assembly trampoline calls the libc_* function, which this magic
++				// redirects to use the function from libSystem.
++				text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn)
++				text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn)
++				text += "\n"
++			}
++		}
++		if err := s.Err(); err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		file.Close()
++	}
++	fmt.Printf(srcTemplate, cmdLine(), buildTags(), text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++var _ syscall.Errno
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
+new file mode 100644
+index 00000000..3be3cdfc
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
+@@ -0,0 +1,415 @@
++// Copyright 2019 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
++
++/*
++This program reads a file containing function prototypes
++(like syscall_aix.go) and generates system call bodies.
++The prototypes are marked by lines beginning with "//sys"
++and read like func declarations if //sys is replaced by func, but:
++	* The parameter lists must give a name for each argument.
++	  This includes return parameters.
++	* The parameter lists must give a type for each argument:
++	  the (x, y, z int) shorthand is not allowed.
++	* If the return parameter is an error number, it must be named err.
++	* If go func name needs to be different than its libc name,
++	* or the function is not in libc, name could be specified
++	* at the end, after "=" sign, like
++	  //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
++*/
++package main
++
++import (
++	"bufio"
++	"flag"
++	"fmt"
++	"os"
++	"regexp"
++	"strings"
++)
++
++var (
++	b32  = flag.Bool("b32", false, "32bit big-endian")
++	l32  = flag.Bool("l32", false, "32bit little-endian")
++	aix  = flag.Bool("aix", false, "aix")
++	tags = flag.String("tags", "", "build tags")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++	return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++	return *tags
++}
++
++// Param is function parameter
++type Param struct {
++	Name string
++	Type string
++}
++
++// usage prints the program usage
++func usage() {
++	fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++	os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++	list = strings.TrimSpace(list)
++	if list == "" {
++		return []string{}
++	}
++	return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++	if ps == nil {
++		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++		os.Exit(1)
++	}
++	return Param{ps[1], ps[2]}
++}
++
++func main() {
++	flag.Usage = usage
++	flag.Parse()
++	if len(flag.Args()) <= 0 {
++		fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++		usage()
++	}
++
++	endianness := ""
++	if *b32 {
++		endianness = "big-endian"
++	} else if *l32 {
++		endianness = "little-endian"
++	}
++
++	pack := ""
++	text := ""
++	cExtern := "/*\n#include <stdint.h>\n#include <stddef.h>\n"
++	for _, path := range flag.Args() {
++		file, err := os.Open(path)
++		if err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		s := bufio.NewScanner(file)
++		for s.Scan() {
++			t := s.Text()
++			t = strings.TrimSpace(t)
++			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++			if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
++				pack = p[1]
++			}
++			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++				continue
++			}
++
++			// Line must be of the form
++			//	func Open(path string, mode int, perm int) (fd int, err error)
++			// Split into name, in params, out params.
++			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
++			if f == nil {
++				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++				os.Exit(1)
++			}
++			funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
++
++			// Split argument lists on comma.
++			in := parseParamList(inps)
++			out := parseParamList(outps)
++
++			inps = strings.Join(in, ", ")
++			outps = strings.Join(out, ", ")
++
++			// Try in vain to keep people from editing this file.
++			// The theory is that they jump into the middle of the file
++			// without reading the header.
++			text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++
++			// Check if value return, err return available
++			errvar := ""
++			retvar := ""
++			rettype := ""
++			for _, param := range out {
++				p := parseParam(param)
++				if p.Type == "error" {
++					errvar = p.Name
++				} else {
++					retvar = p.Name
++					rettype = p.Type
++				}
++			}
++
++			// System call name.
++			if sysname == "" {
++				sysname = funct
++			}
++			sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
++			sysname = strings.ToLower(sysname) // All libc functions are lowercase.
++
++			cRettype := ""
++			if rettype == "unsafe.Pointer" {
++				cRettype = "uintptr_t"
++			} else if rettype == "uintptr" {
++				cRettype = "uintptr_t"
++			} else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
++				cRettype = "uintptr_t"
++			} else if rettype == "int" {
++				cRettype = "int"
++			} else if rettype == "int32" {
++				cRettype = "int"
++			} else if rettype == "int64" {
++				cRettype = "long long"
++			} else if rettype == "uint32" {
++				cRettype = "unsigned int"
++			} else if rettype == "uint64" {
++				cRettype = "unsigned long long"
++			} else {
++				cRettype = "int"
++			}
++			if sysname == "exit" {
++				cRettype = "void"
++			}
++
++			// Change p.Types to c
++			var cIn []string
++			for _, param := range in {
++				p := parseParam(param)
++				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++					cIn = append(cIn, "uintptr_t")
++				} else if p.Type == "string" {
++					cIn = append(cIn, "uintptr_t")
++				} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
++					cIn = append(cIn, "uintptr_t", "size_t")
++				} else if p.Type == "unsafe.Pointer" {
++					cIn = append(cIn, "uintptr_t")
++				} else if p.Type == "uintptr" {
++					cIn = append(cIn, "uintptr_t")
++				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
++					cIn = append(cIn, "uintptr_t")
++				} else if p.Type == "int" {
++					cIn = append(cIn, "int")
++				} else if p.Type == "int32" {
++					cIn = append(cIn, "int")
++				} else if p.Type == "int64" {
++					cIn = append(cIn, "long long")
++				} else if p.Type == "uint32" {
++					cIn = append(cIn, "unsigned int")
++				} else if p.Type == "uint64" {
++					cIn = append(cIn, "unsigned long long")
++				} else {
++					cIn = append(cIn, "int")
++				}
++			}
++
++			if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" {
++				if sysname == "select" {
++					// select is a keyword of Go. Its name is
++					// changed to c_select.
++					cExtern += "#define c_select select\n"
++				}
++				// Imports of system calls from libc
++				cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
++				cIn := strings.Join(cIn, ", ")
++				cExtern += fmt.Sprintf("(%s);\n", cIn)
++			}
++
++			// So file name.
++			if *aix {
++				if modname == "" {
++					modname = "libc.a/shr_64.o"
++				} else {
++					fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
++					os.Exit(1)
++				}
++			}
++
++			strconvfunc := "C.CString"
++
++			// Go function header.
++			if outps != "" {
++				outps = fmt.Sprintf(" (%s)", outps)
++			}
++			if text != "" {
++				text += "\n"
++			}
++
++			text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
++
++			// Prepare arguments to Syscall.
++			var args []string
++			n := 0
++			argN := 0
++			for _, param := range in {
++				p := parseParam(param)
++				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++					args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))")
++				} else if p.Type == "string" && errvar != "" {
++					text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
++					args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++					n++
++				} else if p.Type == "string" {
++					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++					text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name)
++					args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++					n++
++				} else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
++					// Convert slice into pointer, length.
++					// Have to be careful not to take address of &a[0] if len == 0:
++					// pass nil in that case.
++					text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
++					text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
++					args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n))
++					n++
++					text += fmt.Sprintf("\tvar _p%d int\n", n)
++					text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name)
++					args = append(args, fmt.Sprintf("C.size_t(_p%d)", n))
++					n++
++				} else if p.Type == "int64" && endianness != "" {
++					if endianness == "big-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++					} else {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++					}
++					n++
++				} else if p.Type == "bool" {
++					text += fmt.Sprintf("\tvar _p%d uint32\n", n)
++					text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
++					args = append(args, fmt.Sprintf("_p%d", n))
++				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
++					args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
++				} else if p.Type == "unsafe.Pointer" {
++					args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name))
++				} else if p.Type == "int" {
++					if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) {
++						args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name))
++					} else if argN == 0 && funct == "fcntl" {
++						args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++					} else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) {
++						args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++					} else {
++						args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
++					}
++				} else if p.Type == "int32" {
++					args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
++				} else if p.Type == "int64" {
++					args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name))
++				} else if p.Type == "uint32" {
++					args = append(args, fmt.Sprintf("C.uint(%s)", p.Name))
++				} else if p.Type == "uint64" {
++					args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name))
++				} else if p.Type == "uintptr" {
++					args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++				} else {
++					args = append(args, fmt.Sprintf("C.int(%s)", p.Name))
++				}
++				argN++
++			}
++
++			// Actual call.
++			arglist := strings.Join(args, ", ")
++			call := ""
++			if sysname == "exit" {
++				if errvar != "" {
++					call += "er :="
++				} else {
++					call += ""
++				}
++			} else if errvar != "" {
++				call += "r0,er :="
++			} else if retvar != "" {
++				call += "r0,_ :="
++			} else {
++				call += ""
++			}
++			if sysname == "select" {
++				// select is a keyword of Go. Its name is
++				// changed to c_select.
++				call += fmt.Sprintf("C.c_%s(%s)", sysname, arglist)
++			} else {
++				call += fmt.Sprintf("C.%s(%s)", sysname, arglist)
++			}
++
++			// Assign return values.
++			body := ""
++			for i := 0; i < len(out); i++ {
++				p := parseParam(out[i])
++				reg := ""
++				if p.Name == "err" {
++					reg = "e1"
++				} else {
++					reg = "r0"
++				}
++				if reg != "e1" {
++					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++				}
++			}
++
++			// verify return
++			if sysname != "exit" && errvar != "" {
++				if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil {
++					body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n"
++					body += fmt.Sprintf("\t\t%s = er\n", errvar)
++					body += "\t}\n"
++				} else {
++					body += "\tif (r0 ==-1 && er != nil) {\n"
++					body += fmt.Sprintf("\t\t%s = er\n", errvar)
++					body += "\t}\n"
++				}
++			} else if errvar != "" {
++				body += "\tif (er != nil) {\n"
++				body += fmt.Sprintf("\t\t%s = er\n", errvar)
++				body += "\t}\n"
++			}
++
++			text += fmt.Sprintf("\t%s\n", call)
++			text += body
++
++			text += "\treturn\n"
++			text += "}\n"
++		}
++		if err := s.Err(); err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		file.Close()
++	}
++	imp := ""
++	if pack != "unix" {
++		imp = "import \"golang.org/x/sys/unix\"\n"
++
++	}
++	fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package %s
++
++
++%s
++*/
++import "C"
++import (
++	"unsafe"
++)
++
++
++%s
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
+new file mode 100644
+index 00000000..c9600995
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
+@@ -0,0 +1,614 @@
++// Copyright 2019 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
++
++/*
++This program reads a file containing function prototypes
++(like syscall_aix.go) and generates system call bodies.
++The prototypes are marked by lines beginning with "//sys"
++and read like func declarations if //sys is replaced by func, but:
++	* The parameter lists must give a name for each argument.
++	  This includes return parameters.
++	* The parameter lists must give a type for each argument:
++	  the (x, y, z int) shorthand is not allowed.
++	* If the return parameter is an error number, it must be named err.
++	* If go func name needs to be different than its libc name,
++	* or the function is not in libc, name could be specified
++	* at the end, after "=" sign, like
++	  //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
++
++
++This program will generate three files and handle both gc and gccgo implementation:
++  - zsyscall_aix_ppc64.go: the common part of each implementation (error handler, pointer creation)
++  - zsyscall_aix_ppc64_gc.go: gc part with //go_cgo_import_dynamic and a call to syscall6
++  - zsyscall_aix_ppc64_gccgo.go: gccgo part with C function and conversion to C type.
++
++ The generated code looks like this
++
++zsyscall_aix_ppc64.go
++func asyscall(...) (n int, err error) {
++	 // Pointer Creation
++	 r1, e1 := callasyscall(...)
++	 // Type Conversion
++	 // Error Handler
++	 return
++}
++
++zsyscall_aix_ppc64_gc.go
++//go:cgo_import_dynamic libc_asyscall asyscall "libc.a/shr_64.o"
++//go:linkname libc_asyscall libc_asyscall
++var asyscall syscallFunc
++
++func callasyscall(...) (r1 uintptr, e1 Errno) {
++	 r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_asyscall)), "nb_args", ... )
++	 return
++}
++
++zsyscall_aix_ppc64_ggcgo.go
++
++// int asyscall(...)
++
++import "C"
++
++func callasyscall(...) (r1 uintptr, e1 Errno) {
++	 r1 = uintptr(C.asyscall(...))
++	 e1 = syscall.GetErrno()
++	 return
++}
++*/
++
++package main
++
++import (
++	"bufio"
++	"flag"
++	"fmt"
++	"io/ioutil"
++	"os"
++	"regexp"
++	"strings"
++)
++
++var (
++	b32  = flag.Bool("b32", false, "32bit big-endian")
++	l32  = flag.Bool("l32", false, "32bit little-endian")
++	aix  = flag.Bool("aix", false, "aix")
++	tags = flag.String("tags", "", "build tags")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++	return "go run mksyscall_aix_ppc64.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++	return *tags
++}
++
++// Param is function parameter
++type Param struct {
++	Name string
++	Type string
++}
++
++// usage prints the program usage
++func usage() {
++	fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc64.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++	os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++	list = strings.TrimSpace(list)
++	if list == "" {
++		return []string{}
++	}
++	return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++	if ps == nil {
++		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++		os.Exit(1)
++	}
++	return Param{ps[1], ps[2]}
++}
++
++func main() {
++	flag.Usage = usage
++	flag.Parse()
++	if len(flag.Args()) <= 0 {
++		fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++		usage()
++	}
++
++	endianness := ""
++	if *b32 {
++		endianness = "big-endian"
++	} else if *l32 {
++		endianness = "little-endian"
++	}
++
++	pack := ""
++	// GCCGO
++	textgccgo := ""
++	cExtern := "/*\n#include <stdint.h>\n"
++	// GC
++	textgc := ""
++	dynimports := ""
++	linknames := ""
++	var vars []string
++	// COMMON
++	textcommon := ""
++	for _, path := range flag.Args() {
++		file, err := os.Open(path)
++		if err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		s := bufio.NewScanner(file)
++		for s.Scan() {
++			t := s.Text()
++			t = strings.TrimSpace(t)
++			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++			if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
++				pack = p[1]
++			}
++			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++				continue
++			}
++
++			// Line must be of the form
++			//	func Open(path string, mode int, perm int) (fd int, err error)
++			// Split into name, in params, out params.
++			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
++			if f == nil {
++				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++				os.Exit(1)
++			}
++			funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
++
++			// Split argument lists on comma.
++			in := parseParamList(inps)
++			out := parseParamList(outps)
++
++			inps = strings.Join(in, ", ")
++			outps = strings.Join(out, ", ")
++
++			if sysname == "" {
++				sysname = funct
++			}
++
++			onlyCommon := false
++			if funct == "readlen" || funct == "writelen" || funct == "FcntlInt" || funct == "FcntlFlock" {
++				// This function call another syscall which is already implemented.
++				// Therefore, the gc and gccgo part must not be generated.
++				onlyCommon = true
++			}
++
++			// Try in vain to keep people from editing this file.
++			// The theory is that they jump into the middle of the file
++			// without reading the header.
++
++			textcommon += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++			if !onlyCommon {
++				textgccgo += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++				textgc += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++			}
++
++			// Check if value return, err return available
++			errvar := ""
++			rettype := ""
++			for _, param := range out {
++				p := parseParam(param)
++				if p.Type == "error" {
++					errvar = p.Name
++				} else {
++					rettype = p.Type
++				}
++			}
++
++			sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`)
++			sysname = strings.ToLower(sysname) // All libc functions are lowercase.
++
++			// GCCGO Prototype return type
++			cRettype := ""
++			if rettype == "unsafe.Pointer" {
++				cRettype = "uintptr_t"
++			} else if rettype == "uintptr" {
++				cRettype = "uintptr_t"
++			} else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil {
++				cRettype = "uintptr_t"
++			} else if rettype == "int" {
++				cRettype = "int"
++			} else if rettype == "int32" {
++				cRettype = "int"
++			} else if rettype == "int64" {
++				cRettype = "long long"
++			} else if rettype == "uint32" {
++				cRettype = "unsigned int"
++			} else if rettype == "uint64" {
++				cRettype = "unsigned long long"
++			} else {
++				cRettype = "int"
++			}
++			if sysname == "exit" {
++				cRettype = "void"
++			}
++
++			// GCCGO Prototype arguments type
++			var cIn []string
++			for i, param := range in {
++				p := parseParam(param)
++				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++					cIn = append(cIn, "uintptr_t")
++				} else if p.Type == "string" {
++					cIn = append(cIn, "uintptr_t")
++				} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil {
++					cIn = append(cIn, "uintptr_t", "size_t")
++				} else if p.Type == "unsafe.Pointer" {
++					cIn = append(cIn, "uintptr_t")
++				} else if p.Type == "uintptr" {
++					cIn = append(cIn, "uintptr_t")
++				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil {
++					cIn = append(cIn, "uintptr_t")
++				} else if p.Type == "int" {
++					if (i == 0 || i == 2) && funct == "fcntl" {
++						// These fcntl arguments needs to be uintptr to be able to call FcntlInt and FcntlFlock
++						cIn = append(cIn, "uintptr_t")
++					} else {
++						cIn = append(cIn, "int")
++					}
++
++				} else if p.Type == "int32" {
++					cIn = append(cIn, "int")
++				} else if p.Type == "int64" {
++					cIn = append(cIn, "long long")
++				} else if p.Type == "uint32" {
++					cIn = append(cIn, "unsigned int")
++				} else if p.Type == "uint64" {
++					cIn = append(cIn, "unsigned long long")
++				} else {
++					cIn = append(cIn, "int")
++				}
++			}
++
++			if !onlyCommon {
++				// GCCGO Prototype Generation
++				// Imports of system calls from libc
++				if sysname == "select" {
++					// select is a keyword of Go. Its name is
++					// changed to c_select.
++					cExtern += "#define c_select select\n"
++				}
++				cExtern += fmt.Sprintf("%s %s", cRettype, sysname)
++				cIn := strings.Join(cIn, ", ")
++				cExtern += fmt.Sprintf("(%s);\n", cIn)
++			}
++			// GC Library name
++			if modname == "" {
++				modname = "libc.a/shr_64.o"
++			} else {
++				fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct)
++				os.Exit(1)
++			}
++			sysvarname := fmt.Sprintf("libc_%s", sysname)
++
++			if !onlyCommon {
++				// GC Runtime import of function to allow cross-platform builds.
++				dynimports += fmt.Sprintf("//go:cgo_import_dynamic %s %s \"%s\"\n", sysvarname, sysname, modname)
++				// GC Link symbol to proc address variable.
++				linknames += fmt.Sprintf("//go:linkname %s %s\n", sysvarname, sysvarname)
++				// GC Library proc address variable.
++				vars = append(vars, sysvarname)
++			}
++
++			strconvfunc := "BytePtrFromString"
++			strconvtype := "*byte"
++
++			// Go function header.
++			if outps != "" {
++				outps = fmt.Sprintf(" (%s)", outps)
++			}
++			if textcommon != "" {
++				textcommon += "\n"
++			}
++
++			textcommon += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps)
++
++			// Prepare arguments tocall.
++			var argscommon []string // Arguments in the common part
++			var argscall []string   // Arguments for call prototype
++			var argsgc []string     // Arguments for gc call (with syscall6)
++			var argsgccgo []string  // Arguments for gccgo call (with C.name_of_syscall)
++			n := 0
++			argN := 0
++			for _, param := range in {
++				p := parseParam(param)
++				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.Name))
++					argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++					argsgc = append(argsgc, p.Name)
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++				} else if p.Type == "string" && errvar != "" {
++					textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++					textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
++					textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++
++					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++					argscall = append(argscall, fmt.Sprintf("_p%d uintptr ", n))
++					argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++					n++
++				} else if p.Type == "string" {
++					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++					textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++					textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
++					textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++
++					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++					argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n))
++					argsgc = append(argsgc, fmt.Sprintf("_p%d", n))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n))
++					n++
++				} else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil {
++					// Convert slice into pointer, length.
++					// Have to be careful not to take address of &a[0] if len == 0:
++					// pass nil in that case.
++					textcommon += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1])
++					textcommon += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
++					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("len(%s)", p.Name))
++					argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n), fmt.Sprintf("_lenp%d int", n))
++					argsgc = append(argsgc, fmt.Sprintf("_p%d", n), fmt.Sprintf("uintptr(_lenp%d)", n))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n), fmt.Sprintf("C.size_t(_lenp%d)", n))
++					n++
++				} else if p.Type == "int64" && endianness != "" {
++					fmt.Fprintf(os.Stderr, path+":"+funct+" uses int64 with 32 bits mode. Case not yet implemented\n")
++				} else if p.Type == "bool" {
++					fmt.Fprintf(os.Stderr, path+":"+funct+" uses bool. Case not yet implemented\n")
++				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil || p.Type == "unsafe.Pointer" {
++					argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
++					argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++					argsgc = append(argsgc, p.Name)
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++				} else if p.Type == "int" {
++					if (argN == 0 || argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt") || (funct == "FcntlFlock")) {
++						// These fcntl arguments need to be uintptr to be able to call FcntlInt and FcntlFlock
++						argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name))
++						argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++						argsgc = append(argsgc, p.Name)
++						argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++
++					} else {
++						argscommon = append(argscommon, p.Name)
++						argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
++						argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++						argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
++					}
++				} else if p.Type == "int32" {
++					argscommon = append(argscommon, p.Name)
++					argscall = append(argscall, fmt.Sprintf("%s int32", p.Name))
++					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
++				} else if p.Type == "int64" {
++					argscommon = append(argscommon, p.Name)
++					argscall = append(argscall, fmt.Sprintf("%s int64", p.Name))
++					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.longlong(%s)", p.Name))
++				} else if p.Type == "uint32" {
++					argscommon = append(argscommon, p.Name)
++					argscall = append(argscall, fmt.Sprintf("%s uint32", p.Name))
++					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uint(%s)", p.Name))
++				} else if p.Type == "uint64" {
++					argscommon = append(argscommon, p.Name)
++					argscall = append(argscall, fmt.Sprintf("%s uint64", p.Name))
++					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.ulonglong(%s)", p.Name))
++				} else if p.Type == "uintptr" {
++					argscommon = append(argscommon, p.Name)
++					argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name))
++					argsgc = append(argsgc, p.Name)
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name))
++				} else {
++					argscommon = append(argscommon, fmt.Sprintf("int(%s)", p.Name))
++					argscall = append(argscall, fmt.Sprintf("%s int", p.Name))
++					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name))
++					argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name))
++				}
++				argN++
++			}
++			nargs := len(argsgc)
++
++			// COMMON function generation
++			argscommonlist := strings.Join(argscommon, ", ")
++			callcommon := fmt.Sprintf("call%s(%s)", sysname, argscommonlist)
++			ret := []string{"_", "_"}
++			body := ""
++			doErrno := false
++			for i := 0; i < len(out); i++ {
++				p := parseParam(out[i])
++				reg := ""
++				if p.Name == "err" {
++					reg = "e1"
++					ret[1] = reg
++					doErrno = true
++				} else {
++					reg = "r0"
++					ret[0] = reg
++				}
++				if p.Type == "bool" {
++					reg = fmt.Sprintf("%s != 0", reg)
++				}
++				if reg != "e1" {
++					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++				}
++			}
++			if ret[0] == "_" && ret[1] == "_" {
++				textcommon += fmt.Sprintf("\t%s\n", callcommon)
++			} else {
++				textcommon += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], callcommon)
++			}
++			textcommon += body
++
++			if doErrno {
++				textcommon += "\tif e1 != 0 {\n"
++				textcommon += "\t\terr = errnoErr(e1)\n"
++				textcommon += "\t}\n"
++			}
++			textcommon += "\treturn\n"
++			textcommon += "}\n"
++
++			if onlyCommon {
++				continue
++			}
++
++			// CALL Prototype
++			callProto := fmt.Sprintf("func call%s(%s) (r1 uintptr, e1 Errno) {\n", sysname, strings.Join(argscall, ", "))
++
++			// GC function generation
++			asm := "syscall6"
++			if nonblock != nil {
++				asm = "rawSyscall6"
++			}
++
++			if len(argsgc) <= 6 {
++				for len(argsgc) < 6 {
++					argsgc = append(argsgc, "0")
++				}
++			} else {
++				fmt.Fprintf(os.Stderr, "%s: too many arguments to system call", funct)
++				os.Exit(1)
++			}
++			argsgclist := strings.Join(argsgc, ", ")
++			callgc := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, argsgclist)
++
++			textgc += callProto
++			textgc += fmt.Sprintf("\tr1, _, e1 = %s\n", callgc)
++			textgc += "\treturn\n}\n"
++
++			// GCCGO function generation
++			argsgccgolist := strings.Join(argsgccgo, ", ")
++			var callgccgo string
++			if sysname == "select" {
++				// select is a keyword of Go. Its name is
++				// changed to c_select.
++				callgccgo = fmt.Sprintf("C.c_%s(%s)", sysname, argsgccgolist)
++			} else {
++				callgccgo = fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist)
++			}
++			textgccgo += callProto
++			textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo)
++			textgccgo += "\te1 = syscall.GetErrno()\n"
++			textgccgo += "\treturn\n}\n"
++		}
++		if err := s.Err(); err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		file.Close()
++	}
++	imp := ""
++	if pack != "unix" {
++		imp = "import \"golang.org/x/sys/unix\"\n"
++
++	}
++
++	// Print zsyscall_aix_ppc64.go
++	err := ioutil.WriteFile("zsyscall_aix_ppc64.go",
++		[]byte(fmt.Sprintf(srcTemplate1, cmdLine(), buildTags(), pack, imp, textcommon)),
++		0644)
++	if err != nil {
++		fmt.Fprintf(os.Stderr, err.Error())
++		os.Exit(1)
++	}
++
++	// Print zsyscall_aix_ppc64_gc.go
++	vardecls := "\t" + strings.Join(vars, ",\n\t")
++	vardecls += " syscallFunc"
++	err = ioutil.WriteFile("zsyscall_aix_ppc64_gc.go",
++		[]byte(fmt.Sprintf(srcTemplate2, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, textgc)),
++		0644)
++	if err != nil {
++		fmt.Fprintf(os.Stderr, err.Error())
++		os.Exit(1)
++	}
++
++	// Print zsyscall_aix_ppc64_gccgo.go
++	err = ioutil.WriteFile("zsyscall_aix_ppc64_gccgo.go",
++		[]byte(fmt.Sprintf(srcTemplate3, cmdLine(), buildTags(), pack, cExtern, imp, textgccgo)),
++		0644)
++	if err != nil {
++		fmt.Fprintf(os.Stderr, err.Error())
++		os.Exit(1)
++	}
++}
++
++const srcTemplate1 = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package %s
++
++import (
++	"unsafe"
++)
++
++
++%s
++
++%s
++`
++const srcTemplate2 = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++// +build !gccgo
++
++package %s
++
++import (
++	"unsafe"
++)
++%s
++%s
++%s
++type syscallFunc uintptr
++
++var (
++%s
++)
++
++// Implemented in runtime/syscall_aix.go.
++func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++
++%s
++`
++const srcTemplate3 = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++// +build gccgo
++
++package %s
++
++%s
++*/
++import "C"
++import (
++	"syscall"
++)
++
++
++%s
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.go b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go
+new file mode 100644
+index 00000000..675597e4
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksyscall_solaris.go
+@@ -0,0 +1,341 @@
++// Copyright 2019 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
++
++/*
++ This program reads a file containing function prototypes
++ (like syscall_solaris.go) and generates system call bodies.
++ The prototypes are marked by lines beginning with "//sys"
++ and read like func declarations if //sys is replaced by func, but:
++	* The parameter lists must give a name for each argument.
++	  This includes return parameters.
++	* The parameter lists must give a type for each argument:
++	  the (x, y, z int) shorthand is not allowed.
++	* If the return parameter is an error number, it must be named err.
++	* If go func name needs to be different than its libc name,
++	* or the function is not in libc, name could be specified
++	* at the end, after "=" sign, like
++	  //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
++*/
++
++package main
++
++import (
++	"bufio"
++	"flag"
++	"fmt"
++	"os"
++	"regexp"
++	"strings"
++)
++
++var (
++	b32     = flag.Bool("b32", false, "32bit big-endian")
++	l32     = flag.Bool("l32", false, "32bit little-endian")
++	tags    = flag.String("tags", "", "build tags")
++	illumos = flag.Bool("illumos", false, "illumos specific code generation")
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++	return "go run mksyscall_solaris.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++	return *tags
++}
++
++// Param is function parameter
++type Param struct {
++	Name string
++	Type string
++}
++
++// usage prints the program usage
++func usage() {
++	fmt.Fprintf(os.Stderr, "usage: go run mksyscall_solaris.go [-b32 | -l32] [-tags x,y] [file ...]\n")
++	os.Exit(1)
++}
++
++// parseParamList parses parameter list and returns a slice of parameters
++func parseParamList(list string) []string {
++	list = strings.TrimSpace(list)
++	if list == "" {
++		return []string{}
++	}
++	return regexp.MustCompile(`\s*,\s*`).Split(list, -1)
++}
++
++// parseParam splits a parameter into name and type
++func parseParam(p string) Param {
++	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p)
++	if ps == nil {
++		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p)
++		os.Exit(1)
++	}
++	return Param{ps[1], ps[2]}
++}
++
++func main() {
++	flag.Usage = usage
++	flag.Parse()
++	if len(flag.Args()) <= 0 {
++		fmt.Fprintf(os.Stderr, "no files to parse provided\n")
++		usage()
++	}
++
++	endianness := ""
++	if *b32 {
++		endianness = "big-endian"
++	} else if *l32 {
++		endianness = "little-endian"
++	}
++
++	pack := ""
++	text := ""
++	dynimports := ""
++	linknames := ""
++	var vars []string
++	for _, path := range flag.Args() {
++		file, err := os.Open(path)
++		if err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		s := bufio.NewScanner(file)
++		for s.Scan() {
++			t := s.Text()
++			t = strings.TrimSpace(t)
++			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `)
++			if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" {
++				pack = p[1]
++			}
++			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t)
++			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil {
++				continue
++			}
++
++			// Line must be of the form
++			//	func Open(path string, mode int, perm int) (fd int, err error)
++			// Split into name, in params, out params.
++			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t)
++			if f == nil {
++				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t)
++				os.Exit(1)
++			}
++			funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6]
++
++			// Split argument lists on comma.
++			in := parseParamList(inps)
++			out := parseParamList(outps)
++
++			inps = strings.Join(in, ", ")
++			outps = strings.Join(out, ", ")
++
++			// Try in vain to keep people from editing this file.
++			// The theory is that they jump into the middle of the file
++			// without reading the header.
++			text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"
++
++			// So file name.
++			if modname == "" {
++				modname = "libc"
++			}
++
++			// System call name.
++			if sysname == "" {
++				sysname = funct
++			}
++
++			// System call pointer variable name.
++			sysvarname := fmt.Sprintf("proc%s", sysname)
++
++			strconvfunc := "BytePtrFromString"
++			strconvtype := "*byte"
++
++			sysname = strings.ToLower(sysname) // All libc functions are lowercase.
++
++			// Runtime import of function to allow cross-platform builds.
++			dynimports += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"%s.so\"\n", sysname, sysname, modname)
++			// Link symbol to proc address variable.
++			linknames += fmt.Sprintf("//go:linkname %s libc_%s\n", sysvarname, sysname)
++			// Library proc address variable.
++			vars = append(vars, sysvarname)
++
++			// Go function header.
++			outlist := strings.Join(out, ", ")
++			if outlist != "" {
++				outlist = fmt.Sprintf(" (%s)", outlist)
++			}
++			if text != "" {
++				text += "\n"
++			}
++			text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outlist)
++
++			// Check if err return available
++			errvar := ""
++			for _, param := range out {
++				p := parseParam(param)
++				if p.Type == "error" {
++					errvar = p.Name
++					continue
++				}
++			}
++
++			// Prepare arguments to Syscall.
++			var args []string
++			n := 0
++			for _, param := range in {
++				p := parseParam(param)
++				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil {
++					args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))")
++				} else if p.Type == "string" && errvar != "" {
++					text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++					text += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name)
++					text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar)
++					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++					n++
++				} else if p.Type == "string" {
++					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n")
++					text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype)
++					text += fmt.Sprintf("\t_p%d, _ = %s(%s)\n", n, strconvfunc, p.Name)
++					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n))
++					n++
++				} else if s := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); s != nil {
++					// Convert slice into pointer, length.
++					// Have to be careful not to take address of &a[0] if len == 0:
++					// pass nil in that case.
++					text += fmt.Sprintf("\tvar _p%d *%s\n", n, s[1])
++					text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name)
++					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("uintptr(len(%s))", p.Name))
++					n++
++				} else if p.Type == "int64" && endianness != "" {
++					if endianness == "big-endian" {
++						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name))
++					} else {
++						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name))
++					}
++				} else if p.Type == "bool" {
++					text += fmt.Sprintf("\tvar _p%d uint32\n", n)
++					text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n)
++					args = append(args, fmt.Sprintf("uintptr(_p%d)", n))
++					n++
++				} else {
++					args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
++				}
++			}
++			nargs := len(args)
++
++			// Determine which form to use; pad args with zeros.
++			asm := "sysvicall6"
++			if nonblock != nil {
++				asm = "rawSysvicall6"
++			}
++			if len(args) <= 6 {
++				for len(args) < 6 {
++					args = append(args, "0")
++				}
++			} else {
++				fmt.Fprintf(os.Stderr, "%s: too many arguments to system call\n", path)
++				os.Exit(1)
++			}
++
++			// Actual call.
++			arglist := strings.Join(args, ", ")
++			call := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, arglist)
++
++			// Assign return values.
++			body := ""
++			ret := []string{"_", "_", "_"}
++			doErrno := false
++			for i := 0; i < len(out); i++ {
++				p := parseParam(out[i])
++				reg := ""
++				if p.Name == "err" {
++					reg = "e1"
++					ret[2] = reg
++					doErrno = true
++				} else {
++					reg = fmt.Sprintf("r%d", i)
++					ret[i] = reg
++				}
++				if p.Type == "bool" {
++					reg = fmt.Sprintf("%d != 0", reg)
++				}
++				if p.Type == "int64" && endianness != "" {
++					// 64-bit number in r1:r0 or r0:r1.
++					if i+2 > len(out) {
++						fmt.Fprintf(os.Stderr, "%s: not enough registers for int64 return\n", path)
++						os.Exit(1)
++					}
++					if endianness == "big-endian" {
++						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1)
++					} else {
++						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i)
++					}
++					ret[i] = fmt.Sprintf("r%d", i)
++					ret[i+1] = fmt.Sprintf("r%d", i+1)
++				}
++				if reg != "e1" {
++					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg)
++				}
++			}
++			if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" {
++				text += fmt.Sprintf("\t%s\n", call)
++			} else {
++				text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call)
++			}
++			text += body
++
++			if doErrno {
++				text += "\tif e1 != 0 {\n"
++				text += "\t\terr = e1\n"
++				text += "\t}\n"
++			}
++			text += "\treturn\n"
++			text += "}\n"
++		}
++		if err := s.Err(); err != nil {
++			fmt.Fprintf(os.Stderr, err.Error())
++			os.Exit(1)
++		}
++		file.Close()
++	}
++	imp := ""
++	if pack != "unix" {
++		imp = "import \"golang.org/x/sys/unix\"\n"
++	}
++
++	syscallimp := ""
++	if !*illumos {
++		syscallimp = "\"syscall\""
++	}
++
++	vardecls := "\t" + strings.Join(vars, ",\n\t")
++	vardecls += " syscallFunc"
++	fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, syscallimp, imp, dynimports, linknames, vardecls, text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package %s
++
++import (
++        "unsafe"
++        %s
++)
++%s
++%s
++%s
++var (
++%s	
++)
++
++%s
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
+new file mode 100644
+index 00000000..b6b40990
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
+@@ -0,0 +1,355 @@
++// Copyright 2019 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
++
++// Parse the header files for OpenBSD and generate a Go usable sysctl MIB.
++//
++// Build a MIB with each entry being an array containing the level, type and
++// a hash that will contain additional entries if the current entry is a node.
++// We then walk this MIB and create a flattened sysctl name to OID hash.
++
++package main
++
++import (
++	"bufio"
++	"fmt"
++	"os"
++	"path/filepath"
++	"regexp"
++	"sort"
++	"strings"
++)
++
++var (
++	goos, goarch string
++)
++
++// cmdLine returns this programs's commandline arguments.
++func cmdLine() string {
++	return "go run mksysctl_openbsd.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags.
++func buildTags() string {
++	return fmt.Sprintf("%s,%s", goarch, goos)
++}
++
++// reMatch performs regular expression match and stores the substring slice to value pointed by m.
++func reMatch(re *regexp.Regexp, str string, m *[]string) bool {
++	*m = re.FindStringSubmatch(str)
++	if *m != nil {
++		return true
++	}
++	return false
++}
++
++type nodeElement struct {
++	n  int
++	t  string
++	pE *map[string]nodeElement
++}
++
++var (
++	debugEnabled bool
++	mib          map[string]nodeElement
++	node         *map[string]nodeElement
++	nodeMap      map[string]string
++	sysCtl       []string
++)
++
++var (
++	ctlNames1RE = regexp.MustCompile(`^#define\s+(CTL_NAMES)\s+{`)
++	ctlNames2RE = regexp.MustCompile(`^#define\s+(CTL_(.*)_NAMES)\s+{`)
++	ctlNames3RE = regexp.MustCompile(`^#define\s+((.*)CTL_NAMES)\s+{`)
++	netInetRE   = regexp.MustCompile(`^netinet/`)
++	netInet6RE  = regexp.MustCompile(`^netinet6/`)
++	netRE       = regexp.MustCompile(`^net/`)
++	bracesRE    = regexp.MustCompile(`{.*}`)
++	ctlTypeRE   = regexp.MustCompile(`{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}`)
++	fsNetKernRE = regexp.MustCompile(`^(fs|net|kern)_`)
++)
++
++func debug(s string) {
++	if debugEnabled {
++		fmt.Fprintln(os.Stderr, s)
++	}
++}
++
++// Walk the MIB and build a sysctl name to OID mapping.
++func buildSysctl(pNode *map[string]nodeElement, name string, oid []int) {
++	lNode := pNode // local copy of pointer to node
++	var keys []string
++	for k := range *lNode {
++		keys = append(keys, k)
++	}
++	sort.Strings(keys)
++
++	for _, key := range keys {
++		nodename := name
++		if name != "" {
++			nodename += "."
++		}
++		nodename += key
++
++		nodeoid := append(oid, (*pNode)[key].n)
++
++		if (*pNode)[key].t == `CTLTYPE_NODE` {
++			if _, ok := nodeMap[nodename]; ok {
++				lNode = &mib
++				ctlName := nodeMap[nodename]
++				for _, part := range strings.Split(ctlName, ".") {
++					lNode = ((*lNode)[part]).pE
++				}
++			} else {
++				lNode = (*pNode)[key].pE
++			}
++			buildSysctl(lNode, nodename, nodeoid)
++		} else if (*pNode)[key].t != "" {
++			oidStr := []string{}
++			for j := range nodeoid {
++				oidStr = append(oidStr, fmt.Sprintf("%d", nodeoid[j]))
++			}
++			text := "\t{ \"" + nodename + "\", []_C_int{ " + strings.Join(oidStr, ", ") + " } }, \n"
++			sysCtl = append(sysCtl, text)
++		}
++	}
++}
++
++func main() {
++	// Get the OS (using GOOS_TARGET if it exist)
++	goos = os.Getenv("GOOS_TARGET")
++	if goos == "" {
++		goos = os.Getenv("GOOS")
++	}
++	// Get the architecture (using GOARCH_TARGET if it exists)
++	goarch = os.Getenv("GOARCH_TARGET")
++	if goarch == "" {
++		goarch = os.Getenv("GOARCH")
++	}
++	// Check if GOOS and GOARCH environment variables are defined
++	if goarch == "" || goos == "" {
++		fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n")
++		os.Exit(1)
++	}
++
++	mib = make(map[string]nodeElement)
++	headers := [...]string{
++		`sys/sysctl.h`,
++		`sys/socket.h`,
++		`sys/tty.h`,
++		`sys/malloc.h`,
++		`sys/mount.h`,
++		`sys/namei.h`,
++		`sys/sem.h`,
++		`sys/shm.h`,
++		`sys/vmmeter.h`,
++		`uvm/uvmexp.h`,
++		`uvm/uvm_param.h`,
++		`uvm/uvm_swap_encrypt.h`,
++		`ddb/db_var.h`,
++		`net/if.h`,
++		`net/if_pfsync.h`,
++		`net/pipex.h`,
++		`netinet/in.h`,
++		`netinet/icmp_var.h`,
++		`netinet/igmp_var.h`,
++		`netinet/ip_ah.h`,
++		`netinet/ip_carp.h`,
++		`netinet/ip_divert.h`,
++		`netinet/ip_esp.h`,
++		`netinet/ip_ether.h`,
++		`netinet/ip_gre.h`,
++		`netinet/ip_ipcomp.h`,
++		`netinet/ip_ipip.h`,
++		`netinet/pim_var.h`,
++		`netinet/tcp_var.h`,
++		`netinet/udp_var.h`,
++		`netinet6/in6.h`,
++		`netinet6/ip6_divert.h`,
++		`netinet6/pim6_var.h`,
++		`netinet/icmp6.h`,
++		`netmpls/mpls.h`,
++	}
++
++	ctls := [...]string{
++		`kern`,
++		`vm`,
++		`fs`,
++		`net`,
++		//debug			/* Special handling required */
++		`hw`,
++		//machdep		/* Arch specific */
++		`user`,
++		`ddb`,
++		//vfs			/* Special handling required */
++		`fs.posix`,
++		`kern.forkstat`,
++		`kern.intrcnt`,
++		`kern.malloc`,
++		`kern.nchstats`,
++		`kern.seminfo`,
++		`kern.shminfo`,
++		`kern.timecounter`,
++		`kern.tty`,
++		`kern.watchdog`,
++		`net.bpf`,
++		`net.ifq`,
++		`net.inet`,
++		`net.inet.ah`,
++		`net.inet.carp`,
++		`net.inet.divert`,
++		`net.inet.esp`,
++		`net.inet.etherip`,
++		`net.inet.gre`,
++		`net.inet.icmp`,
++		`net.inet.igmp`,
++		`net.inet.ip`,
++		`net.inet.ip.ifq`,
++		`net.inet.ipcomp`,
++		`net.inet.ipip`,
++		`net.inet.mobileip`,
++		`net.inet.pfsync`,
++		`net.inet.pim`,
++		`net.inet.tcp`,
++		`net.inet.udp`,
++		`net.inet6`,
++		`net.inet6.divert`,
++		`net.inet6.ip6`,
++		`net.inet6.icmp6`,
++		`net.inet6.pim6`,
++		`net.inet6.tcp6`,
++		`net.inet6.udp6`,
++		`net.mpls`,
++		`net.mpls.ifq`,
++		`net.key`,
++		`net.pflow`,
++		`net.pfsync`,
++		`net.pipex`,
++		`net.rt`,
++		`vm.swapencrypt`,
++		//vfsgenctl		/* Special handling required */
++	}
++
++	// Node name "fixups"
++	ctlMap := map[string]string{
++		"ipproto":             "net.inet",
++		"net.inet.ipproto":    "net.inet",
++		"net.inet6.ipv6proto": "net.inet6",
++		"net.inet6.ipv6":      "net.inet6.ip6",
++		"net.inet.icmpv6":     "net.inet6.icmp6",
++		"net.inet6.divert6":   "net.inet6.divert",
++		"net.inet6.tcp6":      "net.inet.tcp",
++		"net.inet6.udp6":      "net.inet.udp",
++		"mpls":                "net.mpls",
++		"swpenc":              "vm.swapencrypt",
++	}
++
++	// Node mappings
++	nodeMap = map[string]string{
++		"net.inet.ip.ifq": "net.ifq",
++		"net.inet.pfsync": "net.pfsync",
++		"net.mpls.ifq":    "net.ifq",
++	}
++
++	mCtls := make(map[string]bool)
++	for _, ctl := range ctls {
++		mCtls[ctl] = true
++	}
++
++	for _, header := range headers {
++		debug("Processing " + header)
++		file, err := os.Open(filepath.Join("/usr/include", header))
++		if err != nil {
++			fmt.Fprintf(os.Stderr, "%v\n", err)
++			os.Exit(1)
++		}
++		s := bufio.NewScanner(file)
++		for s.Scan() {
++			var sub []string
++			if reMatch(ctlNames1RE, s.Text(), &sub) ||
++				reMatch(ctlNames2RE, s.Text(), &sub) ||
++				reMatch(ctlNames3RE, s.Text(), &sub) {
++				if sub[1] == `CTL_NAMES` {
++					// Top level.
++					node = &mib
++				} else {
++					// Node.
++					nodename := strings.ToLower(sub[2])
++					ctlName := ""
++					if reMatch(netInetRE, header, &sub) {
++						ctlName = "net.inet." + nodename
++					} else if reMatch(netInet6RE, header, &sub) {
++						ctlName = "net.inet6." + nodename
++					} else if reMatch(netRE, header, &sub) {
++						ctlName = "net." + nodename
++					} else {
++						ctlName = nodename
++						ctlName = fsNetKernRE.ReplaceAllString(ctlName, `$1.`)
++					}
++
++					if val, ok := ctlMap[ctlName]; ok {
++						ctlName = val
++					}
++					if _, ok := mCtls[ctlName]; !ok {
++						debug("Ignoring " + ctlName + "...")
++						continue
++					}
++
++					// Walk down from the top of the MIB.
++					node = &mib
++					for _, part := range strings.Split(ctlName, ".") {
++						if _, ok := (*node)[part]; !ok {
++							debug("Missing node " + part)
++							(*node)[part] = nodeElement{n: 0, t: "", pE: &map[string]nodeElement{}}
++						}
++						node = (*node)[part].pE
++					}
++				}
++
++				// Populate current node with entries.
++				i := -1
++				for !strings.HasPrefix(s.Text(), "}") {
++					s.Scan()
++					if reMatch(bracesRE, s.Text(), &sub) {
++						i++
++					}
++					if !reMatch(ctlTypeRE, s.Text(), &sub) {
++						continue
++					}
++					(*node)[sub[1]] = nodeElement{n: i, t: sub[2], pE: &map[string]nodeElement{}}
++				}
++			}
++		}
++		err = s.Err()
++		if err != nil {
++			fmt.Fprintf(os.Stderr, "%v\n", err)
++			os.Exit(1)
++		}
++		file.Close()
++	}
++	buildSysctl(&mib, "", []int{})
++
++	sort.Strings(sysCtl)
++	text := strings.Join(sysCtl, "")
++
++	fmt.Printf(srcTemplate, cmdLine(), buildTags(), text)
++}
++
++const srcTemplate = `// %s
++// Code generated by the command above; DO NOT EDIT.
++
++// +build %s
++
++package unix
++
++type mibentry struct {
++	ctlname string
++	ctloid []_C_int
++}
++
++var sysctlMib = []mibentry {
++%s
++}
++`
+diff --git a/vendor/golang.org/x/sys/unix/mksysnum.go b/vendor/golang.org/x/sys/unix/mksysnum.go
+new file mode 100644
+index 00000000..baa6ecd8
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/mksysnum.go
+@@ -0,0 +1,190 @@
++// Copyright 2018 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
++
++// Generate system call table for DragonFly, NetBSD,
++// FreeBSD, OpenBSD or Darwin from master list
++// (for example, /usr/src/sys/kern/syscalls.master or
++// sys/syscall.h).
++package main
++
++import (
++	"bufio"
++	"fmt"
++	"io"
++	"io/ioutil"
++	"net/http"
++	"os"
++	"regexp"
++	"strings"
++)
++
++var (
++	goos, goarch string
++)
++
++// cmdLine returns this programs's commandline arguments
++func cmdLine() string {
++	return "go run mksysnum.go " + strings.Join(os.Args[1:], " ")
++}
++
++// buildTags returns build tags
++func buildTags() string {
++	return fmt.Sprintf("%s,%s", goarch, goos)
++}
++
++func checkErr(err error) {
++	if err != nil {
++		fmt.Fprintf(os.Stderr, "%v\n", err)
++		os.Exit(1)
++	}
++}
++
++// source string and substring slice for regexp
++type re struct {
++	str string   // source string
++	sub []string // matched sub-string
++}
++
++// Match performs regular expression match
++func (r *re) Match(exp string) bool {
++	r.sub = regexp.MustCompile(exp).FindStringSubmatch(r.str)
++	if r.sub != nil {
++		return true
++	}
++	return false
++}
++
++// fetchFile fetches a text file from URL
++func fetchFile(URL string) io.Reader {
++	resp, err := http.Get(URL)
++	checkErr(err)
++	defer resp.Body.Close()
++	body, err := ioutil.ReadAll(resp.Body)
++	checkErr(err)
++	return strings.NewReader(string(body))
++}
++
++// readFile reads a text file from path
++func readFile(path string) io.Reader {
++	file, err := os.Open(os.Args[1])
++	checkErr(err)
++	return file
++}
++
++func format(name, num, proto string) string {
++	name = strings.ToUpper(name)
++	// There are multiple entries for enosys and nosys, so comment them out.
++	nm := re{str: name}
++	if nm.Match(`^SYS_E?NOSYS$`) {
++		name = fmt.Sprintf("// %s", name)
++	}
++	if name == `SYS_SYS_EXIT` {
++		name = `SYS_EXIT`
++	}
++	return fmt.Sprintf("	%s = %s;  // %s\n", name, num, proto)
++}
++
++func main() {
++	// Get the OS (using GOOS_TARGET if it exist)
++	goos = os.Getenv("GOOS_TARGET")
++	if goos == "" {
++		goos = os.Getenv("GOOS")
++	}
++	// Get the architecture (using GOARCH_TARGET if it exists)
++	goarch = os.Getenv("GOARCH_TARGET")
++	if goarch == "" {
++		goarch = os.Getenv("GOARCH")
++	}
++	// Check if GOOS and GOARCH environment variables are defined
++	if goarch == "" || goos == "" {
++		fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n")
++		os.Exit(1)
++	}
++
++	file := strings.TrimSpace(os.Args[1])
++	var syscalls io.Reader
++	if strings.HasPrefix(file, "https://") || strings.HasPrefix(file, "http://") {
++		// Download syscalls.master file
++		syscalls = fetchFile(file)
++	} else {
++		syscalls = readFile(file)
++	}
++
++	var text, line string
++	s := bufio.NewScanner(syscalls)
++	for s.Scan() {
++		t := re{str: line}
++		if t.Match(`^(.*)\\$`) {
++			// Handle continuation
++			line = t.sub[1]
++			line += strings.TrimLeft(s.Text(), " \t")
++		} else {
++			// New line
++			line = s.Text()
++		}
++		t = re{str: line}
++		if t.Match(`\\$`) {
++			continue
++		}
++		t = re{str: line}
++
++		switch goos {
++		case "dragonfly":
++			if t.Match(`^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$`) {
++				num, proto := t.sub[1], t.sub[2]
++				name := fmt.Sprintf("SYS_%s", t.sub[3])
++				text += format(name, num, proto)
++			}
++		case "freebsd":
++			if t.Match(`^([0-9]+)\s+\S+\s+(?:(?:NO)?STD|COMPAT10)\s+({ \S+\s+(\w+).*)$`) {
++				num, proto := t.sub[1], t.sub[2]
++				name := fmt.Sprintf("SYS_%s", t.sub[3])
++				text += format(name, num, proto)
++			}
++		case "openbsd":
++			if t.Match(`^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$`) {
++				num, proto, name := t.sub[1], t.sub[3], t.sub[4]
++				text += format(name, num, proto)
++			}
++		case "netbsd":
++			if t.Match(`^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$`) {
++				num, proto, compat := t.sub[1], t.sub[6], t.sub[8]
++				name := t.sub[7] + "_" + t.sub[9]
++				if t.sub[11] != "" {
++					name = t.sub[7] + "_" + t.sub[11]
++				}
++				name = strings.ToUpper(name)
++				if compat == "" || compat == "13" || compat == "30" || compat == "50" {
++					text += fmt.Sprintf("	%s = %s;  // %s\n", name, num, proto)
++				}
++			}
++		case "darwin":
++			if t.Match(`^#define\s+SYS_(\w+)\s+([0-9]+)`) {
++				name, num := t.sub[1], t.sub[2]
++				name = strings.ToUpper(name)
++				text += fmt.Sprintf("	SYS_%s = %s;\n", name, num)
++			}
++		default:
++			fmt.Fprintf(os.Stderr, "unrecognized GOOS=%s\n", goos)
++			os.Exit(1)
++
++		}
++	}
++	err := s.Err()
++	checkErr(err)
++
++	fmt.Printf(template, cmdLine(), buildTags(), text)
++}
++
++const template = `// %s
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build %s
++
++package unix
++
++const(
++%s)`
+diff --git a/vendor/golang.org/x/sys/unix/openbsd_pledge.go b/vendor/golang.org/x/sys/unix/openbsd_pledge.go
+deleted file mode 100644
+index db4f72ea..00000000
+--- a/vendor/golang.org/x/sys/unix/openbsd_pledge.go
++++ /dev/null
+@@ -1,38 +0,0 @@
+-// 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/pagesize_unix.go b/vendor/golang.org/x/sys/unix/pagesize_unix.go
+new file mode 100644
+index 00000000..bc2f3629
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/pagesize_unix.go
+@@ -0,0 +1,15 @@
++// Copyright 2017 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++// For Unix, get the pagesize from the runtime.
++
++package unix
++
++import "syscall"
++
++func Getpagesize() int {
++	return syscall.Getpagesize()
++}
+diff --git a/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/vendor/golang.org/x/sys/unix/pledge_openbsd.go
+new file mode 100644
+index 00000000..eb48294b
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/pledge_openbsd.go
+@@ -0,0 +1,163 @@
++// 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.
++
++package unix
++
++import (
++	"errors"
++	"fmt"
++	"strconv"
++	"syscall"
++	"unsafe"
++)
++
++// Pledge implements the pledge syscall.
++//
++// The pledge syscall does not accept execpromises on OpenBSD releases
++// before 6.3.
++//
++// execpromises must be empty when Pledge is called on OpenBSD
++// releases predating 6.3, otherwise an error will be returned.
++//
++// For more information see pledge(2).
++func Pledge(promises, execpromises string) error {
++	maj, min, err := majmin()
++	if err != nil {
++		return err
++	}
++
++	err = pledgeAvailable(maj, min, execpromises)
++	if err != nil {
++		return err
++	}
++
++	pptr, err := syscall.BytePtrFromString(promises)
++	if err != nil {
++		return err
++	}
++
++	// This variable will hold either a nil unsafe.Pointer or
++	// an unsafe.Pointer to a string (execpromises).
++	var expr unsafe.Pointer
++
++	// If we're running on OpenBSD > 6.2, pass execpromises to the syscall.
++	if maj > 6 || (maj == 6 && min > 2) {
++		exptr, err := syscall.BytePtrFromString(execpromises)
++		if err != nil {
++			return err
++		}
++		expr = unsafe.Pointer(exptr)
++	}
++
++	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)
++	if e != 0 {
++		return e
++	}
++
++	return nil
++}
++
++// PledgePromises implements the pledge syscall.
++//
++// This changes the promises and leaves the execpromises untouched.
++//
++// For more information see pledge(2).
++func PledgePromises(promises string) error {
++	maj, min, err := majmin()
++	if err != nil {
++		return err
++	}
++
++	err = pledgeAvailable(maj, min, "")
++	if err != nil {
++		return err
++	}
++
++	// This variable holds the execpromises and is always nil.
++	var expr unsafe.Pointer
++
++	pptr, err := syscall.BytePtrFromString(promises)
++	if err != nil {
++		return err
++	}
++
++	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0)
++	if e != 0 {
++		return e
++	}
++
++	return nil
++}
++
++// PledgeExecpromises implements the pledge syscall.
++//
++// This changes the execpromises and leaves the promises untouched.
++//
++// For more information see pledge(2).
++func PledgeExecpromises(execpromises string) error {
++	maj, min, err := majmin()
++	if err != nil {
++		return err
++	}
++
++	err = pledgeAvailable(maj, min, execpromises)
++	if err != nil {
++		return err
++	}
++
++	// This variable holds the promises and is always nil.
++	var pptr unsafe.Pointer
++
++	exptr, err := syscall.BytePtrFromString(execpromises)
++	if err != nil {
++		return err
++	}
++
++	_, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0)
++	if e != 0 {
++		return e
++	}
++
++	return nil
++}
++
++// majmin returns major and minor version number for an OpenBSD system.
++func majmin() (major int, minor int, err error) {
++	var v Utsname
++	err = Uname(&v)
++	if err != nil {
++		return
++	}
++
++	major, err = strconv.Atoi(string(v.Release[0]))
++	if err != nil {
++		err = errors.New("cannot parse major version number returned by uname")
++		return
++	}
++
++	minor, err = strconv.Atoi(string(v.Release[2]))
++	if err != nil {
++		err = errors.New("cannot parse minor version number returned by uname")
++		return
++	}
++
++	return
++}
++
++// pledgeAvailable checks for availability of the pledge(2) syscall
++// based on the running OpenBSD version.
++func pledgeAvailable(maj, min int, execpromises string) error {
++	// If OpenBSD <= 5.9, pledge is not available.
++	if (maj == 5 && min != 9) || maj < 5 {
++		return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min)
++	}
++
++	// If OpenBSD <= 6.2 and execpromises is not empty,
++	// return an error - execpromises is not available before 6.3
++	if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" {
++		return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min)
++	}
++
++	return nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go
+index 3c7627eb..61712b51 100644
+--- a/vendor/golang.org/x/sys/unix/race.go
++++ b/vendor/golang.org/x/sys/unix/race.go
+@@ -1,4 +1,4 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
++// 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.
+ 
+diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go
+index f8678e0d..ad026678 100644
+--- a/vendor/golang.org/x/sys/unix/race0.go
++++ b/vendor/golang.org/x/sys/unix/race0.go
+@@ -1,8 +1,8 @@
+-// Copyright 2012 The Go Authors.  All rights reserved.
++// 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
++// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/vendor/golang.org/x/sys/unix/readdirent_getdents.go
+new file mode 100644
+index 00000000..3a90aa6d
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/readdirent_getdents.go
+@@ -0,0 +1,12 @@
++// Copyright 2019 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 aix dragonfly freebsd linux netbsd openbsd
++
++package unix
++
++// ReadDirent reads directory entries from fd and writes them into buf.
++func ReadDirent(fd int, buf []byte) (n int, err error) {
++	return Getdents(fd, buf)
++}
+diff --git a/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+new file mode 100644
+index 00000000..5fdae40b
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go
+@@ -0,0 +1,19 @@
++// Copyright 2019 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
++
++package unix
++
++import "unsafe"
++
++// ReadDirent reads directory entries from fd and writes them into buf.
++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)
++}
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
+new file mode 100644
+index 00000000..5144deec
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go
+@@ -0,0 +1,16 @@
++// Copyright 2019 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
++
++// Round the length of a raw sockaddr up to align it properly.
++func cmsgAlignOf(salen int) int {
++	salign := SizeofPtr
++	if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {
++		// 64-bit Dragonfly before the September 2019 ABI changes still requires
++		// 32-bit aligned access to network subsystem.
++		salign = 4
++	}
++	return (salen + salign - 1) & ^(salign - 1)
++}
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
+index d9ff4731..8bf45705 100644
+--- a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
+@@ -1,4 +1,4 @@
+-// Copyright 2011 The Go Authors.  All rights reserved.
++// 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.
+ 
+@@ -17,7 +17,7 @@ func UnixCredentials(ucred *Ucred) []byte {
+ 	h.Level = SOL_SOCKET
+ 	h.Type = SCM_CREDENTIALS
+ 	h.SetLen(CmsgLen(SizeofUcred))
+-	*((*Ucred)(cmsgData(h))) = *ucred
++	*(*Ucred)(h.data(0)) = *ucred
+ 	return b
+ }
+ 
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+index bb756ece..003916ed 100644
+--- a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
+@@ -2,25 +2,15 @@
+ // 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 aix 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, DragonFly BSD and
+-	// Solaris kernels still require 32-bit aligned access to
+-	// network subsystem.
+-	if darwin64Bit || dragonfly64Bit || solaris64Bit {
+-		salign = 4
+-	}
+-	return (salen + salign - 1) & ^(salign - 1)
+-}
++import (
++	"unsafe"
++)
+ 
+ // CmsgLen returns the value to store in the Len field of the Cmsghdr
+ // structure, taking into account any necessary alignment.
+@@ -34,8 +24,8 @@ 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)))
++func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer {
++	return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset)
+ }
+ 
+ // SocketControlMessage represents a socket control message.
+@@ -78,10 +68,8 @@ func UnixRights(fds ...int) []byte {
+ 	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)
++	for i, fd := range fds {
++		*(*int32)(h.data(4 * uintptr(i))) = int32(fd)
+ 	}
+ 	return b
+ }
+diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+new file mode 100644
+index 00000000..7d08dae5
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go
+@@ -0,0 +1,38 @@
++// Copyright 2019 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 aix darwin freebsd linux netbsd openbsd solaris
++
++package unix
++
++import (
++	"runtime"
++)
++
++// Round the length of a raw sockaddr up to align it properly.
++func cmsgAlignOf(salen int) int {
++	salign := SizeofPtr
++
++	// dragonfly needs to check ABI version at runtime, see cmsgAlignOf in
++	// sockcmsg_dragonfly.go
++	switch runtime.GOOS {
++	case "aix":
++		// There is no alignment on AIX.
++		salign = 1
++	case "darwin", "illumos", "solaris":
++		// NOTE: It seems like 64-bit Darwin, Illumos and Solaris
++		// kernels still require 32-bit aligned access to network
++		// subsystem.
++		if SizeofPtr == 8 {
++			salign = 4
++		}
++	case "netbsd", "openbsd":
++		// NetBSD and OpenBSD armv7 require 64-bit alignment.
++		if runtime.GOARCH == "arm" {
++			salign = 8
++		}
++	}
++
++	return (salen + salign - 1) & ^(salign - 1)
++}
+diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go
+index 35ed6643..17fb6986 100644
+--- a/vendor/golang.org/x/sys/unix/str.go
++++ b/vendor/golang.org/x/sys/unix/str.go
+@@ -2,7 +2,7 @@
+ // 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go
+index 85e35020..fd4ee8eb 100644
+--- a/vendor/golang.org/x/sys/unix/syscall.go
++++ b/vendor/golang.org/x/sys/unix/syscall.go
+@@ -2,33 +2,36 @@
+ // 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 aix 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
++// 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
++// 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"
+ 
++import "strings"
++
+ // 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
+-		}
++	if strings.IndexByte(s, 0) != -1 {
++		return nil, EINVAL
+ 	}
+ 	a := make([]byte, len(s)+1)
+ 	copy(a, s)
+@@ -47,23 +50,4 @@ func BytePtrFromString(s string) (*byte, error) {
+ }
+ 
+ // 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_aix.go b/vendor/golang.org/x/sys/unix/syscall_aix.go
+new file mode 100644
+index 00000000..9ad8a0d4
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_aix.go
+@@ -0,0 +1,536 @@
++// Copyright 2018 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 aix
++
++// Aix 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 "unsafe"
++
++/*
++ * Wrapped
++ */
++
++//sys	utimes(path string, times *[2]Timeval) (err error)
++func Utimes(path string, tv []Timeval) error {
++	if len(tv) != 2 {
++		return EINVAL
++	}
++	return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
++}
++
++//sys	utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
++func UtimesNano(path string, ts []Timespec) error {
++	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)
++}
++
++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
++	}
++	if n == len(sa.raw.Path) && name[0] != '@' {
++		return nil, 0, EINVAL
++	}
++	sa.raw.Family = AF_UNIX
++	for i := 0; i < n; i++ {
++		sa.raw.Path[i] = uint8(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
++}
++
++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(fd, &rsa)
++}
++
++//sys	getcwd(buf []byte) (err error)
++
++const ImplementsGetwd = true
++
++func Getwd() (ret string, err error) {
++	for len := uint64(4096); ; len *= 2 {
++		b := make([]byte, len)
++		err := getcwd(b)
++		if err == nil {
++			i := 0
++			for b[i] != 0 {
++				i++
++			}
++			return string(b[0:i]), nil
++		}
++		if err != ERANGE {
++			return "", err
++		}
++	}
++}
++
++func Getcwd(buf []byte) (n int, err error) {
++	err = getcwd(buf)
++	if err == nil {
++		i := 0
++		for buf[i] != 0 {
++			i++
++		}
++		n = i + 1
++	}
++	return
++}
++
++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])
++}
++
++/*
++ * Socket
++ */
++
++//sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
++
++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(fd, &rsa)
++	if err != nil {
++		Close(nfd)
++		nfd = 0
++	}
++	return
++}
++
++func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
++	// Recvmsg not implemented on AIX
++	sa := new(SockaddrUnix)
++	return -1, -1, -1, sa, ENOSYS
++}
++
++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) {
++	// SendmsgN not implemented on AIX
++	return -1, ENOSYS
++}
++
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
++	switch rsa.Addr.Family {
++
++	case AF_UNIX:
++		pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
++		sa := new(SockaddrUnix)
++
++		// Some versions of AIX have a bug in getsockname (see IV78655).
++		// We can't rely on sa.Len being set correctly.
++		n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL.
++		for i := 0; i < n; i++ {
++			if pp.Path[i] == 0 {
++				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 Gettimeofday(tv *Timeval) (err error) {
++	err = gettimeofday(tv, nil)
++	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)
++}
++
++// TODO
++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++	return -1, ENOSYS
++}
++
++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	getdirent(fd int, buf []byte) (n int, err error)
++func Getdents(fd int, buf []byte) (n int, err error) {
++	return getdirent(fd, buf)
++}
++
++//sys	wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)
++func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
++	var status _C_int
++	var r Pid_t
++	err = ERESTART
++	// AIX wait4 may return with ERESTART errno, while the processus is still
++	// active.
++	for err == ERESTART {
++		r, err = wait4(Pid_t(pid), &status, options, rusage)
++	}
++	wpid = int(r)
++	if wstatus != nil {
++		*wstatus = WaitStatus(status)
++	}
++	return
++}
++
++/*
++ * Wait
++ */
++
++type WaitStatus uint32
++
++func (w WaitStatus) Stopped() bool { return w&0x40 != 0 }
++func (w WaitStatus) StopSignal() Signal {
++	if !w.Stopped() {
++		return -1
++	}
++	return Signal(w>>8) & 0xFF
++}
++
++func (w WaitStatus) Exited() bool { return w&0xFF == 0 }
++func (w WaitStatus) ExitStatus() int {
++	if !w.Exited() {
++		return -1
++	}
++	return int((w >> 8) & 0xFF)
++}
++
++func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 }
++func (w WaitStatus) Signal() Signal {
++	if !w.Signaled() {
++		return -1
++	}
++	return Signal(w>>16) & 0xFF
++}
++
++func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 }
++
++func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 }
++
++func (w WaitStatus) TrapCause() int { return -1 }
++
++//sys	ioctl(fd int, req uint, arg uintptr) (err error)
++
++// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX
++// There is no way to create a custom fcntl and to keep //sys fcntl easily,
++// Therefore, the programmer must call dup2 instead of fcntl in this case.
++
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++//sys	FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl
++
++// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
++//sys	FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl
++
++//sys	fcntl(fd int, cmd int, arg int) (val int, err error)
++
++/*
++ * Direct access
++ */
++
++//sys	Acct(path string) (err error)
++//sys	Chdir(path string) (err error)
++//sys	Chroot(path string) (err error)
++//sys	Close(fd int) (err error)
++//sys	Dup(oldfd int) (fd int, err error)
++//sys	Exit(code int)
++//sys	Faccessat(dirfd int, path string, mode uint32, flags int) (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	Fdatasync(fd int) (err error)
++//sys	Fsync(fd int) (err error)
++// readdir_r
++//sysnb	Getpgid(pid int) (pgid int, err error)
++
++//sys	Getpgrp() (pid int)
++
++//sysnb	Getpid() (pid int)
++//sysnb	Getppid() (ppid int)
++//sys	Getpriority(which int, who int) (prio int, err error)
++//sysnb	Getrusage(who int, rusage *Rusage) (err error)
++//sysnb	Getsid(pid int) (sid int, err error)
++//sysnb	Kill(pid int, sig Signal) (err error)
++//sys	Klogctl(typ int, buf []byte) (n int, err error) = syslog
++//sys	Mkdir(dirfd int, 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	Mknod(path string, mode uint32, dev int) (err error)
++//sys	Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
++//sys	Nanosleep(time *Timespec, leftover *Timespec) (err error)
++//sys   Open(path string, mode int, perm uint32) (fd int, err error) = open64
++//sys   Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
++//sys	read(fd int, p []byte) (n int, err error)
++//sys	Readlink(path string, buf []byte) (n int, 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	Setuid(uid int) (err error)
++//sys	Setgid(uid int) (err error)
++
++//sys	Setpriority(which int, who int, prio int) (err error)
++//sys	Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)
++//sys	Sync()
++//sysnb	Times(tms *Tms) (ticks uintptr, err error)
++//sysnb	Umask(mask int) (oldmask int)
++//sysnb	Uname(buf *Utsname) (err error)
++//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	write(fd int, p []byte) (n int, err error)
++//sys	readlen(fd int, p *byte, np int) (n int, err error) = read
++//sys	writelen(fd int, p *byte, np int) (n int, err error) = write
++
++//sys	Dup2(oldfd int, newfd int) (err error)
++//sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64
++//sys	Fchown(fd int, uid int, gid int) (err error)
++//sys	fstat(fd int, stat *Stat_t) (err error)
++//sys	fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat
++//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	Getuid() (uid int)
++//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) = pread64
++//sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64
++//sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
++//sys	Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
++//sysnb	Setregid(rgid int, egid 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	stat(path string, statptr *Stat_t) (err error)
++//sys	Statfs(path string, buf *Statfs_t) (err error)
++//sys	Truncate(path string, length int64) (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)
++
++// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used.
++//sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg
++//sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg
++
++//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	Mlockall(flags int) (err error)
++//sys	Msync(b []byte, flags int) (err error)
++//sys	Munlock(b []byte) (err error)
++//sys	Munlockall() (err error)
++
++//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	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)
++}
++
++//sys	gettimeofday(tv *Timeval, tzp *Timezone) (err error)
++//sysnb	Time(t *Time_t) (tt Time_t, err error)
++//sys	Utime(path string, buf *Utimbuf) (err error)
++
++//sys	Getsystemcfg(label int) (n uint64)
++
++//sys	umount(target string) (err error)
++func Unmount(target string, flags int) (err error) {
++	if flags != 0 {
++		// AIX doesn't have any flags for umount.
++		return ENOSYS
++	}
++	return umount(target)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+new file mode 100644
+index 00000000..b3c8e330
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go
+@@ -0,0 +1,54 @@
++// Copyright 2018 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 aix
++// +build ppc
++
++package unix
++
++//sysnb	Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64
++//sysnb	Setrlimit(resource int, rlim *Rlimit) (err error) = setrlimit64
++//sys	Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64
++
++//sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
++
++func setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
++}
++
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
++}
++
++func (iov *Iovec) SetLen(length int) {
++	iov.Len = uint32(length)
++}
++
++func (msghdr *Msghdr) SetControllen(length int) {
++	msghdr.Controllen = uint32(length)
++}
++
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
++}
++
++func Fstat(fd int, stat *Stat_t) error {
++	return fstat(fd, stat)
++}
++
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
++	return fstatat(dirfd, path, stat, flags)
++}
++
++func Lstat(path string, stat *Stat_t) error {
++	return lstat(path, stat)
++}
++
++func Stat(path string, statptr *Stat_t) error {
++	return stat(path, statptr)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+new file mode 100644
+index 00000000..9a6e0241
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go
+@@ -0,0 +1,85 @@
++// Copyright 2018 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 aix
++// +build ppc64
++
++package unix
++
++//sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
++//sysnb	Setrlimit(resource int, rlim *Rlimit) (err error)
++//sys	Seek(fd int, offset int64, whence int) (off int64, err error) = lseek
++
++//sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64
++
++func setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
++}
++
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int64(sec), Usec: int32(usec)}
++}
++
++func (iov *Iovec) SetLen(length int) {
++	iov.Len = uint64(length)
++}
++
++func (msghdr *Msghdr) SetControllen(length int) {
++	msghdr.Controllen = uint32(length)
++}
++
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
++}
++
++// In order to only have Timespec structure, type of Stat_t's fields
++// Atim, Mtim and Ctim is changed from StTimespec to Timespec during
++// ztypes generation.
++// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an
++// int32, so the fields' value must be modified.
++func fixStatTimFields(stat *Stat_t) {
++	stat.Atim.Nsec >>= 32
++	stat.Mtim.Nsec >>= 32
++	stat.Ctim.Nsec >>= 32
++}
++
++func Fstat(fd int, stat *Stat_t) error {
++	err := fstat(fd, stat)
++	if err != nil {
++		return err
++	}
++	fixStatTimFields(stat)
++	return nil
++}
++
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error {
++	err := fstatat(dirfd, path, stat, flags)
++	if err != nil {
++		return err
++	}
++	fixStatTimFields(stat)
++	return nil
++}
++
++func Lstat(path string, stat *Stat_t) error {
++	err := lstat(path, stat)
++	if err != nil {
++		return err
++	}
++	fixStatTimFields(stat)
++	return nil
++}
++
++func Stat(path string, statptr *Stat_t) error {
++	err := stat(path, statptr)
++	if err != nil {
++		return err
++	}
++	fixStatTimFields(statptr)
++	return nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go
+index c2846b32..68605db6 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_bsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go
+@@ -34,7 +34,7 @@ func Getgroups() (gids []int, err error) {
+ 		return nil, nil
+ 	}
+ 
+-	// Sanity check group count.  Max is 16 on BSD.
++	// Sanity check group count. Max is 16 on BSD.
+ 	if n < 0 || n > 1000 {
+ 		return nil, EINVAL
+ 	}
+@@ -63,15 +63,6 @@ func Setgroups(gids []int) (err error) {
+ 	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.
+@@ -86,6 +77,7 @@ const (
+ 	shift = 8
+ 
+ 	exited  = 0
++	killed  = 9
+ 	stopped = 0x7F
+ )
+ 
+@@ -112,6 +104,8 @@ 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) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL }
++
+ func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }
+ 
+ func (w WaitStatus) StopSignal() syscall.Signal {
+@@ -206,7 +200,7 @@ func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil
+ }
+ 
+-func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
+ 	switch rsa.Addr.Family {
+ 	case AF_LINK:
+ 		pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa))
+@@ -243,7 +237,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ 				break
+ 			}
+ 		}
+-		bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++		bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+ 		sa.Name = string(bytes)
+ 		return sa, nil
+ 
+@@ -286,7 +280,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ 		Close(nfd)
+ 		return 0, nil, ECONNABORTED
+ 	}
+-	sa, err = anyToSockaddr(&rsa)
++	sa, err = anyToSockaddr(fd, &rsa)
+ 	if err != nil {
+ 		Close(nfd)
+ 		nfd = 0
+@@ -306,50 +300,21 @@ func Getsockname(fd int) (sa Sockaddr, err error) {
+ 		rsa.Addr.Family = AF_UNIX
+ 		rsa.Addr.Len = SizeofSockaddrUnix
+ 	}
+-	return anyToSockaddr(&rsa)
++	return anyToSockaddr(fd, &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
++// GetsockoptString returns the string value of the socket option opt for the
++// socket associated with fd at the given socket level.
++func GetsockoptString(fd, level, opt int) (string, error) {
++	buf := make([]byte, 256)
++	vallen := _Socklen(len(buf))
++	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++	if err != nil {
++		return "", err
++	}
++	return string(buf[:vallen-1]), nil
+ }
+ 
+ //sys   recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+@@ -385,7 +350,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ 	recvflags = int(msg.Flags)
+ 	// source address is only specified if the socket is unconnected
+ 	if rsa.Addr.Family != AF_UNSPEC {
+-		from, err = anyToSockaddr(&rsa)
++		from, err = anyToSockaddr(fd, &rsa)
+ 	}
+ 	return
+ }
+@@ -448,8 +413,6 @@ func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err e
+ 	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.
+@@ -547,6 +510,23 @@ func SysctlRaw(name string, args ...int) ([]byte, error) {
+ 	return buf[:n], nil
+ }
+ 
++func SysctlClockinfo(name string) (*Clockinfo, error) {
++	mib, err := sysctlmib(name)
++	if err != nil {
++		return nil, err
++	}
++
++	n := uintptr(SizeofClockinfo)
++	var ci Clockinfo
++	if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
++		return nil, err
++	}
++	if n != SizeofClockinfo {
++		return nil, EIO
++	}
++	return &ci, nil
++}
++
+ //sys	utimes(path string, timeval *[2]Timeval) (err error)
+ 
+ func Utimes(path string, tv []Timeval) error {
+@@ -570,7 +550,12 @@ func UtimesNano(path string, ts []Timespec) error {
+ 	if len(ts) != 2 {
+ 		return EINVAL
+ 	}
+-	err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++	// Darwin setattrlist can set nanosecond timestamps
++	err := setattrlistTimes(path, ts, 0)
++	if err != ENOSYS {
++		return err
++	}
++	err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ 	if err != ENOSYS {
+ 		return err
+ 	}
+@@ -590,6 +575,10 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ 	if len(ts) != 2 {
+ 		return EINVAL
+ 	}
++	err := setattrlistTimes(path, ts, flags)
++	if err != ENOSYS {
++		return err
++	}
+ 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+ }
+ 
+@@ -605,7 +594,14 @@ func Futimes(fd int, tv []Timeval) error {
+ 	return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+ }
+ 
+-//sys	fcntl(fd int, cmd int, arg int) (val int, err error)
++//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)
++}
+ 
+ // TODO: wrap
+ //	Acct(name nil-string) (err error)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
+new file mode 100644
+index 00000000..6a15cba6
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go
+@@ -0,0 +1,29 @@
++// Copyright 2019 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,go1.12,!go1.13
++
++package unix
++
++import (
++	"unsafe"
++)
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++	// To implement this using libSystem we'd need syscall_syscallPtr for
++	// fdopendir. However, syscallPtr was only added in Go 1.13, so we fall
++	// back to raw syscalls for this func on Go 1.12.
++	var p unsafe.Pointer
++	if len(buf) > 0 {
++		p = unsafe.Pointer(&buf[0])
++	} else {
++		p = unsafe.Pointer(&_zero)
++	}
++	r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
++	n = int(r0)
++	if e1 != 0 {
++		return n, errnoErr(e1)
++	}
++	return n, nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
+new file mode 100644
+index 00000000..f911617b
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.1_13.go
+@@ -0,0 +1,101 @@
++// Copyright 2019 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,go1.13
++
++package unix
++
++import "unsafe"
++
++//sys	closedir(dir uintptr) (err error)
++//sys	readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno)
++
++func fdopendir(fd int) (dir uintptr, err error) {
++	r0, _, e1 := syscall_syscallPtr(funcPC(libc_fdopendir_trampoline), uintptr(fd), 0, 0)
++	dir = uintptr(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fdopendir_trampoline()
++
++//go:linkname libc_fdopendir libc_fdopendir
++//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib"
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++	// Simulate Getdirentries using fdopendir/readdir_r/closedir.
++	// We store the number of entries to skip in the seek
++	// offset of fd. See issue #31368.
++	// It's not the full required semantics, but should handle the case
++	// of calling Getdirentries or ReadDirent repeatedly.
++	// It won't handle assigning the results of lseek to *basep, or handle
++	// the directory being edited underfoot.
++	skip, err := Seek(fd, 0, 1 /* SEEK_CUR */)
++	if err != nil {
++		return 0, err
++	}
++
++	// We need to duplicate the incoming file descriptor
++	// because the caller expects to retain control of it, but
++	// fdopendir expects to take control of its argument.
++	// Just Dup'ing the file descriptor is not enough, as the
++	// result shares underlying state. Use Openat to make a really
++	// new file descriptor referring to the same directory.
++	fd2, err := Openat(fd, ".", O_RDONLY, 0)
++	if err != nil {
++		return 0, err
++	}
++	d, err := fdopendir(fd2)
++	if err != nil {
++		Close(fd2)
++		return 0, err
++	}
++	defer closedir(d)
++
++	var cnt int64
++	for {
++		var entry Dirent
++		var entryp *Dirent
++		e := readdir_r(d, &entry, &entryp)
++		if e != 0 {
++			return n, errnoErr(e)
++		}
++		if entryp == nil {
++			break
++		}
++		if skip > 0 {
++			skip--
++			cnt++
++			continue
++		}
++		reclen := int(entry.Reclen)
++		if reclen > len(buf) {
++			// Not enough room. Return for now.
++			// The counter will let us know where we should start up again.
++			// Note: this strategy for suspending in the middle and
++			// restarting is O(n^2) in the length of the directory. Oh well.
++			break
++		}
++		// Copy entry into return buffer.
++		s := struct {
++			ptr unsafe.Pointer
++			siz int
++			cap int
++		}{ptr: unsafe.Pointer(&entry), siz: reclen, cap: reclen}
++		copy(buf, *(*[]byte)(unsafe.Pointer(&s)))
++		buf = buf[reclen:]
++		n += reclen
++		cnt++
++	}
++	// Set the seek offset of the input fd to record
++	// how many files we've already returned.
++	_, err = Seek(fd, cnt, 0 /* SEEK_SET */)
++	if err != nil {
++		return n, err
++	}
++
++	return n, nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
+index ad74a11f..9a5a6ee5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
+@@ -13,7 +13,7 @@
+ package unix
+ 
+ import (
+-	errorspkg "errors"
++	"errors"
+ 	"syscall"
+ 	"unsafe"
+ )
+@@ -36,6 +36,7 @@ func Getwd() (string, error) {
+ 	return "", ENOTSUP
+ }
+ 
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -54,7 +55,7 @@ func nametomib(name string) (mib []_C_int, err error) {
+ 
+ 	// 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
++	// 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
+@@ -88,7 +89,6 @@ 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) }
+ 
+@@ -109,7 +109,7 @@ type attrList struct {
+ 
+ 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")
++		return nil, errors.New("attrBuf too small")
+ 	}
+ 	attrList.bitmapCount = attrBitMapCount
+ 
+@@ -119,17 +119,8 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
+ 		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
++	if err := getattrlist(_p0, unsafe.Pointer(&attrList), unsafe.Pointer(&attrBuf[0]), uintptr(len(attrBuf)), int(options)); err != nil {
++		return nil, err
+ 	}
+ 	size := *(*uint32)(unsafe.Pointer(&attrBuf[0]))
+ 
+@@ -145,12 +136,12 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
+ 	for i := uint32(0); int(i) < len(dat); {
+ 		header := dat[i:]
+ 		if len(header) < 8 {
+-			return attrs, errorspkg.New("truncated attribute header")
++			return attrs, errors.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")
++			return attrs, errors.New("truncated results; attrBuf too small")
+ 		}
+ 		end := uint32(datOff) + attrLen
+ 		attrs = append(attrs, dat[datOff:end])
+@@ -162,6 +153,8 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
+ 	return
+ }
+ 
++//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
++
+ //sysnb pipe() (r int, w int, err error)
+ 
+ func Pipe(p []int) (err error) {
+@@ -179,14 +172,141 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ 		_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 getfsstat(_p0, bufsize, flags)
++}
++
++func xattrPointer(dest []byte) *byte {
++	// It's only when dest is set to NULL that the OS X implementations of
++	// getxattr() and listxattr() return the current sizes of the named attributes.
++	// An empty byte array is not sufficient. To maintain the same behaviour as the
++	// linux implementation, we wrap around the system calls and pass in NULL when
++	// dest is empty.
++	var destp *byte
++	if len(dest) > 0 {
++		destp = &dest[0]
+ 	}
+-	return
++	return destp
++}
++
++//sys	getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)
++
++func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
++	return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0)
++}
++
++func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {
++	return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW)
++}
++
++//sys	fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error)
++
++func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
++	return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0)
++}
++
++//sys	setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error)
++
++func Setxattr(path string, attr string, data []byte, flags int) (err error) {
++	// The parameters for the OS X implementation vary slightly compared to the
++	// linux system call, specifically the position parameter:
++	//
++	//  linux:
++	//      int setxattr(
++	//          const char *path,
++	//          const char *name,
++	//          const void *value,
++	//          size_t size,
++	//          int flags
++	//      );
++	//
++	//  darwin:
++	//      int setxattr(
++	//          const char *path,
++	//          const char *name,
++	//          void *value,
++	//          size_t size,
++	//          u_int32_t position,
++	//          int options
++	//      );
++	//
++	// position specifies the offset within the extended attribute. In the
++	// current implementation, only the resource fork extended attribute makes
++	// use of this argument. For all others, position is reserved. We simply
++	// default to setting it to zero.
++	return setxattr(path, attr, xattrPointer(data), len(data), 0, flags)
++}
++
++func Lsetxattr(link string, attr string, data []byte, flags int) (err error) {
++	return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW)
++}
++
++//sys	fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error)
++
++func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) {
++	return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0)
++}
++
++//sys	removexattr(path string, attr string, options int) (err error)
++
++func Removexattr(path string, attr string) (err error) {
++	// We wrap around and explicitly zero out the options provided to the OS X
++	// implementation of removexattr, we do so for interoperability with the
++	// linux variant.
++	return removexattr(path, attr, 0)
++}
++
++func Lremovexattr(link string, attr string) (err error) {
++	return removexattr(link, attr, XATTR_NOFOLLOW)
++}
++
++//sys	fremovexattr(fd int, attr string, options int) (err error)
++
++func Fremovexattr(fd int, attr string) (err error) {
++	return fremovexattr(fd, attr, 0)
++}
++
++//sys	listxattr(path string, dest *byte, size int, options int) (sz int, err error)
++
++func Listxattr(path string, dest []byte) (sz int, err error) {
++	return listxattr(path, xattrPointer(dest), len(dest), 0)
+ }
+ 
++func Llistxattr(link string, dest []byte) (sz int, err error) {
++	return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW)
++}
++
++//sys	flistxattr(fd int, dest *byte, size int, options int) (sz int, err error)
++
++func Flistxattr(fd int, dest []byte) (sz int, err error) {
++	return flistxattr(fd, xattrPointer(dest), len(dest), 0)
++}
++
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++	_p0, err := BytePtrFromString(path)
++	if err != nil {
++		return err
++	}
++
++	var attrList attrList
++	attrList.bitmapCount = ATTR_BIT_MAP_COUNT
++	attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME
++
++	// order is mtime, atime: the opposite of Chtimes
++	attributes := [2]Timespec{times[1], times[0]}
++	options := 0
++	if flags&AT_SYMLINK_NOFOLLOW != 0 {
++		options |= FSOPT_NOFOLLOW
++	}
++	return setattrlist(
++		_p0,
++		unsafe.Pointer(&attrList),
++		unsafe.Pointer(&attributes),
++		unsafe.Sizeof(attributes),
++		options)
++}
++
++//sys setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
++
+ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
+ 	// Darwin doesn't support SYS_UTIMENSAT
+ 	return ENOSYS
+@@ -196,49 +316,74 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error {
+  * Wrapped
+  */
+ 
++//sys	fcntl(fd int, cmd int, arg int) (val int, err error)
++
+ //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) }
+ 
+ //sys	ioctl(fd int, req uint, arg uintptr) (err error)
+ 
+-// ioctl itself should not be exposed directly, but additional get/set
+-// functions for specific types are permissible.
++//sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL
+ 
+-// IoctlSetInt performs an ioctl operation which sets an integer value
+-// on fd, using the specified request number.
+-func IoctlSetInt(fd int, req uint, value int) error {
+-	return ioctl(fd, req, uintptr(value))
+-}
++func Uname(uname *Utsname) error {
++	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++	n := unsafe.Sizeof(uname.Sysname)
++	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++		return err
++	}
+ 
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+-}
++	mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++	n = unsafe.Sizeof(uname.Nodename)
++	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++		return err
++	}
+ 
+-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+-}
++	mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++	n = unsafe.Sizeof(uname.Release)
++	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++		return err
++	}
+ 
+-// IoctlGetInt performs an ioctl operation which gets an integer value
+-// from fd, using the specified request number.
+-func IoctlGetInt(fd int, req uint) (int, error) {
+-	var value int
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return value, err
+-}
++	mib = []_C_int{CTL_KERN, KERN_VERSION}
++	n = unsafe.Sizeof(uname.Version)
++	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++		return err
++	}
+ 
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+-	var value Winsize
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
++	// The version might have newlines or tabs in it, convert them to
++	// spaces.
++	for i, b := range uname.Version {
++		if b == '\n' || b == '\t' {
++			if i == len(uname.Version)-1 {
++				uname.Version[i] = 0
++			} else {
++				uname.Version[i] = ' '
++			}
++		}
++	}
++
++	mib = []_C_int{CTL_HW, HW_MACHINE}
++	n = unsafe.Sizeof(uname.Machine)
++	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	return nil
+ }
+ 
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+-	var value Termios
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
++	if raceenabled {
++		raceReleaseMerge(unsafe.Pointer(&ioSync))
++	}
++	var length = int64(count)
++	err = sendfile(infd, outfd, *offset, &length, nil, 0)
++	written = int(length)
++	return
+ }
+ 
++//sys	sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error)
++
+ /*
+  * Exposed directly
+  */
+@@ -249,6 +394,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, 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	ClockGettime(clockid int32, time *Timespec) (err error)
+ //sys	Close(fd int) (err error)
+ //sys	Dup(fd int) (nfd int, err error)
+ //sys	Dup2(from int, to int) (err error)
+@@ -263,11 +409,8 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys	Fchownat(dirfd int, path string, uid int, gid int, flags 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)
+@@ -287,7 +430,6 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys	Link(path string, link string) (err error)
+ //sys	Linkat(pathfd int, path string, linkfd int, link string, flags int) (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	Mkdirat(dirfd int, path string, mode uint32) (err error)
+ //sys	Mkfifo(path string, mode uint32) (err error)
+@@ -305,7 +447,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, 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	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sys	Setegid(egid int) (err error)
+ //sysnb	Seteuid(euid int) (err error)
+ //sysnb	Setgid(gid int) (err error)
+@@ -319,8 +461,6 @@ func IoctlGetTermios(fd int, req uint) (*Termios, 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	Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys	Sync() (err error)
+@@ -377,18 +517,9 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ // Searchfs
+ // Delete
+ // Copyfile
+-// Poll
+ // Watchevent
+ // Waitevent
+ // Modwatch
+-// Getxattr
+-// Fgetxattr
+-// Setxattr
+-// Fsetxattr
+-// Removexattr
+-// Fremovexattr
+-// Listxattr
+-// Flistxattr
+ // Fsctl
+ // Initgroups
+ // Posix_spawn
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
+new file mode 100644
+index 00000000..6b223f91
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go
+@@ -0,0 +1,9 @@
++// Copyright 2019 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,386,!go1.12
++
++package unix
++
++//sys  Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
+index c172a3da..707ba4f5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
+@@ -8,30 +8,22 @@ package unix
+ 
+ import (
+ 	"syscall"
+-	"unsafe"
+ )
+ 
+-func Getpagesize() int { return 4096 }
++//sys   ptrace(request int, pid int, addr uintptr, data uintptr) (err error)
+ 
+-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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+ 
+ //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
++	// but is otherwise unused. The answers come back
+ 	// in the two registers.
+ 	sec, usec, err := gettimeofday(tv)
+ 	tv.Sec = int32(sec)
+@@ -53,21 +45,12 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
+-func (cmsg *Cmsghdr) SetLen(length int) {
+-	cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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 (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+@@ -75,3 +58,11 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ // 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
++
++//sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
++//sys	Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
++//sys	getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
++//sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
++//sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
++//sys	Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
+new file mode 100644
+index 00000000..68ebd6fa
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go
+@@ -0,0 +1,9 @@
++// Copyright 2019 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,amd64,!go1.12
++
++package unix
++
++//sys  Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+index c6c99c13..fdbfb591 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
+@@ -8,30 +8,22 @@ package unix
+ 
+ import (
+ 	"syscall"
+-	"unsafe"
+ )
+ 
+-func Getpagesize() int { return 4096 }
++//sys   ptrace(request int, pid int, addr uintptr, data uintptr) (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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ //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
++	// but is otherwise unused. The answers come back
+ 	// in the two registers.
+ 	sec, usec, err := gettimeofday(tv)
+ 	tv.Sec = sec
+@@ -53,21 +45,12 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
+-func (cmsg *Cmsghdr) SetLen(length int) {
+-	cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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 (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+@@ -75,3 +58,11 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ // 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
++
++//sys	Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
++//sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
++//sys	Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64
++//sys	getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64
++//sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
++//sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
++//sys	Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
+new file mode 100644
+index 00000000..0e3f25ac
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go
+@@ -0,0 +1,11 @@
++// Copyright 2019 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,arm,!go1.12
++
++package unix
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++	return 0, ENOSYS
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
+index d286cf40..f8bc4cfb 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
+@@ -6,30 +6,24 @@ package unix
+ 
+ import (
+ 	"syscall"
+-	"unsafe"
+ )
+ 
+-func Getpagesize() int { return 4096 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++func ptrace(request int, pid int, addr uintptr, data uintptr) error {
++	return ENOTSUP
++}
+ 
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+-	ts.Sec = int32(nsec / 1e9)
+-	ts.Nsec = int32(nsec % 1e9)
+-	return
++func setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+ 
+ //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
++	// but is otherwise unused. The answers come back
+ 	// in the two registers.
+ 	sec, usec, err := gettimeofday(tv)
+ 	tv.Sec = int32(sec)
+@@ -51,21 +45,24 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
+-func (cmsg *Cmsghdr) SetLen(length int) {
+-	cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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 (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
+ }
+ 
+ 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/arm the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
++
++//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, stat *Statfs_t) (err error)
++//sys	getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
++//sys	Lstat(path string, stat *Stat_t) (err error)
++//sys	Stat(path string, stat *Stat_t) (err error)
++//sys	Statfs(path string, stat *Statfs_t) (err error)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
+new file mode 100644
+index 00000000..01d45040
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go
+@@ -0,0 +1,11 @@
++// Copyright 2019 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,arm64,!go1.12
++
++package unix
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++	return 0, ENOSYS
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+index c33905cd..5ede3ac3 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
+@@ -8,30 +8,24 @@ package unix
+ 
+ import (
+ 	"syscall"
+-	"unsafe"
+ )
+ 
+-func Getpagesize() int { return 16384 }
+-
+-func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++func ptrace(request int, pid int, addr uintptr, data uintptr) error {
++	return ENOTSUP
++}
+ 
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+-	ts.Sec = nsec / 1e9
+-	ts.Nsec = nsec % 1e9
+-	return
++func setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ //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
++	// but is otherwise unused. The answers come back
+ 	// in the two registers.
+ 	sec, usec, err := gettimeofday(tv)
+ 	tv.Sec = sec
+@@ -53,21 +47,12 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
+-func (cmsg *Cmsghdr) SetLen(length int) {
+-	cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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 (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
+@@ -75,3 +60,11 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ // 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
++
++//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, stat *Statfs_t) (err error)
++//sys	getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT
++//sys	Lstat(path string, stat *Stat_t) (err error)
++//sys	Stat(path string, stat *Stat_t) (err error)
++//sys	Statfs(path string, stat *Statfs_t) (err error)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+new file mode 100644
+index 00000000..f34c86c8
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go
+@@ -0,0 +1,33 @@
++// Copyright 2018 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,go1.12
++
++package unix
++
++import "unsafe"
++
++// Implemented in the runtime package (runtime/sys_darwin.go)
++func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only
++func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno)
++
++//go:linkname syscall_syscall syscall.syscall
++//go:linkname syscall_syscall6 syscall.syscall6
++//go:linkname syscall_syscall6X syscall.syscall6X
++//go:linkname syscall_syscall9 syscall.syscall9
++//go:linkname syscall_rawSyscall syscall.rawSyscall
++//go:linkname syscall_rawSyscall6 syscall.rawSyscall6
++//go:linkname syscall_syscallPtr syscall.syscallPtr
++
++// Find the entry point for f. See comments in runtime/proc.go for the
++// function of the same name.
++//go:nosplit
++func funcPC(f func()) uintptr {
++	return **(**uintptr)(unsafe.Pointer(&f))
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+index 3a483373..8a195ae5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+@@ -12,8 +12,27 @@
+ 
+ package unix
+ 
+-import "unsafe"
++import (
++	"sync"
++	"unsafe"
++)
+ 
++// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h
++var (
++	osreldateOnce sync.Once
++	osreldate     uint32
++)
++
++// First __DragonFly_version after September 2019 ABI changes
++// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html
++const _dragonflyABIChangeVersion = 500705
++
++func supportsABI(ver uint32) bool {
++	osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
++	return osreldate >= ver
++}
++
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -102,7 +121,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ 	if len > SizeofSockaddrAny {
+ 		panic("RawSockaddrAny too small")
+ 	}
+-	sa, err = anyToSockaddr(&rsa)
++	sa, err = anyToSockaddr(fd, &rsa)
+ 	if err != nil {
+ 		Close(nfd)
+ 		nfd = 0
+@@ -110,6 +129,23 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ 	return
+ }
+ 
++const ImplementsGetwd = true
++
++//sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++	var buf [PathMax]byte
++	_, err := Getcwd(buf[0:])
++	if err != nil {
++		return "", err
++	}
++	n := clen(buf[:])
++	if n < 1 {
++		return "", EINVAL
++	}
++	return string(buf[:n]), nil
++}
++
+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	var bufsize uintptr
+@@ -125,6 +161,85 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++	// used on Darwin for UtimesNano
++	return ENOSYS
++}
++
++//sys	ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error {
++	err := sysctl(mib, old, oldlen, nil, 0)
++	if err != nil {
++		// Utsname members on Dragonfly are only 32 bytes and
++		// the syscall returns ENOMEM in case the actual value
++		// is longer.
++		if err == ENOMEM {
++			err = nil
++		}
++	}
++	return err
++}
++
++func Uname(uname *Utsname) error {
++	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++	n := unsafe.Sizeof(uname.Sysname)
++	if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil {
++		return err
++	}
++	uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0
++
++	mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++	n = unsafe.Sizeof(uname.Nodename)
++	if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil {
++		return err
++	}
++	uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0
++
++	mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++	n = unsafe.Sizeof(uname.Release)
++	if err := sysctlUname(mib, &uname.Release[0], &n); err != nil {
++		return err
++	}
++	uname.Release[unsafe.Sizeof(uname.Release)-1] = 0
++
++	mib = []_C_int{CTL_KERN, KERN_VERSION}
++	n = unsafe.Sizeof(uname.Version)
++	if err := sysctlUname(mib, &uname.Version[0], &n); err != nil {
++		return err
++	}
++
++	// The version might have newlines or tabs in it, convert them to
++	// spaces.
++	for i, b := range uname.Version {
++		if b == '\n' || b == '\t' {
++			if i == len(uname.Version)-1 {
++				uname.Version[i] = 0
++			} else {
++				uname.Version[i] = ' '
++			}
++		}
++	}
++
++	mib = []_C_int{CTL_HW, HW_MACHINE}
++	n = unsafe.Sizeof(uname.Machine)
++	if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil {
++		return err
++	}
++	uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0
++
++	return nil
++}
++
++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)
++}
++
+ /*
+  * Exposed directly
+  */
+@@ -139,16 +254,21 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sys	Dup(fd int) (nfd int, err error)
+ //sys	Dup2(from int, to int) (err error)
+ //sys	Exit(code int)
++//sys	Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys	Fchdir(fd int) (err error)
+ //sys	Fchflags(fd int, flags 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	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	Fstatat(fd int, path string, stat *Stat_t, flags int) (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	Getdents(fd int, buf []byte) (n int, err error)
+ //sys	Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
+ //sys	Getdtablesize() (size int)
+ //sysnb	Getegid() (egid int)
+@@ -169,21 +289,26 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, 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	Linkat(pathfd int, path string, linkfd int, link string, flags int) (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	Mkdirat(dirfd int, 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	Mknodat(fd int, path string, mode uint32, dev int) (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, 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	Renameat(fromfd int, from string, tofd int, 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	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb	Setegid(egid int) (err error)
+ //sysnb	Seteuid(euid int) (err error)
+ //sysnb	Setgid(gid int) (err error)
+@@ -201,11 +326,13 @@ func Getfsstat(buf []Statfs_t, flags int) (n 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	Symlinkat(oldpath string, newdirfd int, newpath 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	Unlinkat(dirfd int, path string, flags int) (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)
+@@ -225,7 +352,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // Getlogin
+ // Sigpending
+ // Sigaltstack
+-// Ioctl
+ // Reboot
+ // Execve
+ // Vfork
+@@ -257,7 +383,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // Searchfs
+ // Delete
+ // Copyfile
+-// Poll
+ // Watchevent
+ // Waitevent
+ // Modwatch
+@@ -403,7 +528,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // Pread_nocancel
+ // Pwrite_nocancel
+ // Waitid_nocancel
+-// Poll_nocancel
+ // Msgsnd_nocancel
+ // Msgrcv_nocancel
+ // Sem_wait_nocancel
+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+index da7cb798..a6b4830a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+@@ -11,21 +11,12 @@ import (
+ 	"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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Usec = nsec % 1e9 / 1e3
+-	tv.Sec = int64(nsec / 1e9)
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
+index d26e52ea..6932e7c2 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
+@@ -12,8 +12,36 @@
+ 
+ package unix
+ 
+-import "unsafe"
++import (
++	"sync"
++	"unsafe"
++)
++
++const (
++	SYS_FSTAT_FREEBSD12         = 551 // { int fstat(int fd, _Out_ struct stat *sb); }
++	SYS_FSTATAT_FREEBSD12       = 552 // { int fstatat(int fd, _In_z_ char *path, \
++	SYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \
++	SYS_STATFS_FREEBSD12        = 555 // { int statfs(_In_z_ char *path, \
++	SYS_FSTATFS_FREEBSD12       = 556 // { int fstatfs(int fd, \
++	SYS_GETFSSTAT_FREEBSD12     = 557 // { int getfsstat( \
++	SYS_MKNODAT_FREEBSD12       = 559 // { int mknodat(int fd, _In_z_ char *path, \
++)
++
++// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.
++var (
++	osreldateOnce sync.Once
++	osreldate     uint32
++)
++
++// INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h
++const _ino64First = 1200031
++
++func supportsABI(ver uint32) bool {
++	osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") })
++	return osreldate >= ver
++}
+ 
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -32,7 +60,7 @@ func nametomib(name string) (mib []_C_int, err error) {
+ 
+ 	// 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
++	// 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
+@@ -66,14 +94,21 @@ 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) {
++	return Pipe2(p, 0)
++}
++
++//sysnb	pipe2(p *[2]_C_int, flags int) (err error)
++
++func Pipe2(p []int, flags int) error {
+ 	if len(p) != 2 {
+ 		return EINVAL
+ 	}
+-	p[0], p[1], err = pipe()
+-	return
++	var pp [2]_C_int
++	err := pipe2(&pp, flags)
++	p[0] = int(pp[0])
++	p[1] = int(pp[1])
++	return err
+ }
+ 
+ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+@@ -97,7 +132,7 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ 	if len > SizeofSockaddrAny {
+ 		panic("RawSockaddrAny too small")
+ 	}
+-	sa, err = anyToSockaddr(&rsa)
++	sa, err = anyToSockaddr(fd, &rsa)
+ 	if err != nil {
+ 		Close(nfd)
+ 		nfd = 0
+@@ -105,290 +140,421 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) {
+ 	return
+ }
+ 
++const ImplementsGetwd = true
++
++//sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++	var buf [PathMax]byte
++	_, err := Getcwd(buf[0:])
++	if err != nil {
++		return "", err
++	}
++	n := clen(buf[:])
++	if n < 1 {
++		return "", EINVAL
++	}
++	return string(buf[:n]), nil
++}
++
+ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+-	var _p0 unsafe.Pointer
+-	var bufsize uintptr
++	var (
++		_p0          unsafe.Pointer
++		bufsize      uintptr
++		oldBuf       []statfs_freebsd11_t
++		needsConvert bool
++	)
++
+ 	if len(buf) > 0 {
+-		_p0 = unsafe.Pointer(&buf[0])
+-		bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
++		if supportsABI(_ino64First) {
++			_p0 = unsafe.Pointer(&buf[0])
++			bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf))
++		} else {
++			n := len(buf)
++			oldBuf = make([]statfs_freebsd11_t, n)
++			_p0 = unsafe.Pointer(&oldBuf[0])
++			bufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n)
++			needsConvert = true
++		}
++	}
++	var sysno uintptr = SYS_GETFSSTAT
++	if supportsABI(_ino64First) {
++		sysno = SYS_GETFSSTAT_FREEBSD12
+ 	}
+-	r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags))
++	r0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = e1
+ 	}
++	if e1 == 0 && needsConvert {
++		for i := range oldBuf {
++			buf[i].convertFrom(&oldBuf[i])
++		}
++	}
+ 	return
+ }
+ 
+-// Derive extattr namespace and attribute name
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++	// used on Darwin for UtimesNano
++	return ENOSYS
++}
+ 
+-func xattrnamespace(fullattr string) (ns int, attr string, err error) {
+-	s := -1
+-	for idx, val := range fullattr {
+-		if val == '.' {
+-			s = idx
+-			break
+-		}
++//sys   ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++func Uname(uname *Utsname) error {
++	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++	n := unsafe.Sizeof(uname.Sysname)
++	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++		return err
+ 	}
+ 
+-	if s == -1 {
+-		return -1, "", ENOATTR
++	mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++	n = unsafe.Sizeof(uname.Nodename)
++	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++		return err
+ 	}
+ 
+-	namespace := fullattr[0:s]
+-	attr = fullattr[s+1:]
++	mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++	n = unsafe.Sizeof(uname.Release)
++	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++		return err
++	}
+ 
+-	switch namespace {
+-	case "user":
+-		return EXTATTR_NAMESPACE_USER, attr, nil
+-	case "system":
+-		return EXTATTR_NAMESPACE_SYSTEM, attr, nil
+-	default:
+-		return -1, "", ENOATTR
++	mib = []_C_int{CTL_KERN, KERN_VERSION}
++	n = unsafe.Sizeof(uname.Version)
++	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++		return err
+ 	}
+-}
+ 
+-func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) {
+-	if len(dest) > idx {
+-		return unsafe.Pointer(&dest[idx])
+-	} else {
+-		return unsafe.Pointer(_zero)
++	// The version might have newlines or tabs in it, convert them to
++	// spaces.
++	for i, b := range uname.Version {
++		if b == '\n' || b == '\t' {
++			if i == len(uname.Version)-1 {
++				uname.Version[i] = 0
++			} else {
++				uname.Version[i] = ' '
++			}
++		}
+ 	}
+-}
+ 
+-// FreeBSD implements its own syscalls to handle extended attributes
++	mib = []_C_int{CTL_HW, HW_MACHINE}
++	n = unsafe.Sizeof(uname.Machine)
++	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++		return err
++	}
+ 
+-func Getxattr(file string, attr string, dest []byte) (sz int, err error) {
+-	d := initxattrdest(dest, 0)
+-	destsize := len(dest)
++	return nil
++}
+ 
+-	nsid, a, err := xattrnamespace(attr)
++func Stat(path string, st *Stat_t) (err error) {
++	var oldStat stat_freebsd11_t
++	if supportsABI(_ino64First) {
++		return fstatat_freebsd12(AT_FDCWD, path, st, 0)
++	}
++	err = stat(path, &oldStat)
+ 	if err != nil {
+-		return -1, err
++		return err
+ 	}
+ 
+-	return ExtattrGetFile(file, nsid, a, uintptr(d), destsize)
++	st.convertFrom(&oldStat)
++	return nil
+ }
+ 
+-func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
+-	d := initxattrdest(dest, 0)
+-	destsize := len(dest)
+-
+-	nsid, a, err := xattrnamespace(attr)
++func Lstat(path string, st *Stat_t) (err error) {
++	var oldStat stat_freebsd11_t
++	if supportsABI(_ino64First) {
++		return fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW)
++	}
++	err = lstat(path, &oldStat)
+ 	if err != nil {
+-		return -1, err
++		return err
+ 	}
+ 
+-	return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize)
++	st.convertFrom(&oldStat)
++	return nil
+ }
+ 
+-func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) {
+-	d := initxattrdest(dest, 0)
+-	destsize := len(dest)
+-
+-	nsid, a, err := xattrnamespace(attr)
++func Fstat(fd int, st *Stat_t) (err error) {
++	var oldStat stat_freebsd11_t
++	if supportsABI(_ino64First) {
++		return fstat_freebsd12(fd, st)
++	}
++	err = fstat(fd, &oldStat)
+ 	if err != nil {
+-		return -1, err
++		return err
+ 	}
+ 
+-	return ExtattrGetLink(link, nsid, a, uintptr(d), destsize)
++	st.convertFrom(&oldStat)
++	return nil
+ }
+ 
+-// 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)
++func Fstatat(fd int, path string, st *Stat_t, flags int) (err error) {
++	var oldStat stat_freebsd11_t
++	if supportsABI(_ino64First) {
++		return fstatat_freebsd12(fd, path, st, flags)
++	}
++	err = fstatat(fd, path, &oldStat, flags)
+ 	if err != nil {
+-		return
++		return err
+ 	}
+ 
+-	_, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz)
+-	return
++	st.convertFrom(&oldStat)
++	return nil
+ }
+ 
+-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)
++func Statfs(path string, st *Statfs_t) (err error) {
++	var oldStatfs statfs_freebsd11_t
++	if supportsABI(_ino64First) {
++		return statfs_freebsd12(path, st)
++	}
++	err = statfs(path, &oldStatfs)
+ 	if err != nil {
+-		return
++		return err
+ 	}
+ 
+-	_, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz)
+-	return
++	st.convertFrom(&oldStatfs)
++	return nil
+ }
+ 
+-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)
++func Fstatfs(fd int, st *Statfs_t) (err error) {
++	var oldStatfs statfs_freebsd11_t
++	if supportsABI(_ino64First) {
++		return fstatfs_freebsd12(fd, st)
++	}
++	err = fstatfs(fd, &oldStatfs)
+ 	if err != nil {
+-		return
++		return err
+ 	}
+ 
+-	_, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz)
+-	return
++	st.convertFrom(&oldStatfs)
++	return nil
+ }
+ 
+-func Removexattr(file string, attr string) (err error) {
+-	nsid, a, err := xattrnamespace(attr)
+-	if err != nil {
++func Getdents(fd int, buf []byte) (n int, err error) {
++	return Getdirentries(fd, buf, nil)
++}
++
++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
++	if supportsABI(_ino64First) {
++		if basep == nil || unsafe.Sizeof(*basep) == 8 {
++			return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep)))
++		}
++		// The freebsd12 syscall needs a 64-bit base. On 32-bit machines
++		// we can't just use the basep passed in. See #32498.
++		var base uint64 = uint64(*basep)
++		n, err = getdirentries_freebsd12(fd, buf, &base)
++		*basep = uintptr(base)
++		if base>>32 != 0 {
++			// We can't stuff the base back into a uintptr, so any
++			// future calls would be suspect. Generate an error.
++			// EIO is allowed by getdirentries.
++			err = EIO
++		}
+ 		return
+ 	}
+ 
+-	err = ExtattrDeleteFile(file, nsid, a)
++	// The old syscall entries are smaller than the new. Use 1/4 of the original
++	// buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c).
++	oldBufLen := roundup(len(buf)/4, _dirblksiz)
++	oldBuf := make([]byte, oldBufLen)
++	n, err = getdirentries(fd, oldBuf, basep)
++	if err == nil && n > 0 {
++		n = convertFromDirents11(buf, oldBuf[:n])
++	}
+ 	return
+ }
+ 
+-func Fremovexattr(fd int, attr string) (err error) {
+-	nsid, a, err := xattrnamespace(attr)
+-	if err != nil {
+-		return
++func Mknod(path string, mode uint32, dev uint64) (err error) {
++	var oldDev int
++	if supportsABI(_ino64First) {
++		return mknodat_freebsd12(AT_FDCWD, path, mode, dev)
+ 	}
+-
+-	err = ExtattrDeleteFd(fd, nsid, a)
+-	return
++	oldDev = int(dev)
++	return mknod(path, mode, oldDev)
+ }
+ 
+-func Lremovexattr(link string, attr string) (err error) {
+-	nsid, a, err := xattrnamespace(attr)
+-	if err != nil {
+-		return
++func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) {
++	var oldDev int
++	if supportsABI(_ino64First) {
++		return mknodat_freebsd12(fd, path, mode, dev)
+ 	}
++	oldDev = int(dev)
++	return mknodat(fd, path, mode, oldDev)
++}
+ 
+-	err = ExtattrDeleteLink(link, nsid, a)
+-	return
++// round x to the nearest multiple of y, larger or equal to x.
++//
++// from /usr/include/sys/param.h Macros for counting and rounding.
++// #define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
++func roundup(x, y int) int {
++	return ((x + y - 1) / y) * y
+ }
+ 
+-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
+-		}
++func (s *Stat_t) convertFrom(old *stat_freebsd11_t) {
++	*s = Stat_t{
++		Dev:     uint64(old.Dev),
++		Ino:     uint64(old.Ino),
++		Nlink:   uint64(old.Nlink),
++		Mode:    old.Mode,
++		Uid:     old.Uid,
++		Gid:     old.Gid,
++		Rdev:    uint64(old.Rdev),
++		Atim:    old.Atim,
++		Mtim:    old.Mtim,
++		Ctim:    old.Ctim,
++		Btim:    old.Btim,
++		Size:    old.Size,
++		Blocks:  old.Blocks,
++		Blksize: old.Blksize,
++		Flags:   old.Flags,
++		Gen:     uint64(old.Gen),
++	}
++}
+ 
+-		s += stmp
+-		destsiz -= s
+-		if destsiz < 0 {
+-			destsiz = 0
+-		}
+-		d = initxattrdest(dest, s)
++func (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) {
++	*s = Statfs_t{
++		Version:     _statfsVersion,
++		Type:        old.Type,
++		Flags:       old.Flags,
++		Bsize:       old.Bsize,
++		Iosize:      old.Iosize,
++		Blocks:      old.Blocks,
++		Bfree:       old.Bfree,
++		Bavail:      old.Bavail,
++		Files:       old.Files,
++		Ffree:       old.Ffree,
++		Syncwrites:  old.Syncwrites,
++		Asyncwrites: old.Asyncwrites,
++		Syncreads:   old.Syncreads,
++		Asyncreads:  old.Asyncreads,
++		// Spare
++		Namemax: old.Namemax,
++		Owner:   old.Owner,
++		Fsid:    old.Fsid,
++		// Charspare
++		// Fstypename
++		// Mntfromname
++		// Mntonname
+ 	}
+ 
+-	return s, e
++	sl := old.Fstypename[:]
++	n := clen(*(*[]byte)(unsafe.Pointer(&sl)))
++	copy(s.Fstypename[:], old.Fstypename[:n])
++
++	sl = old.Mntfromname[:]
++	n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
++	copy(s.Mntfromname[:], old.Mntfromname[:n])
++
++	sl = old.Mntonname[:]
++	n = clen(*(*[]byte)(unsafe.Pointer(&sl)))
++	copy(s.Mntonname[:], old.Mntonname[:n])
+ }
+ 
+-func Flistxattr(fd int, dest []byte) (sz int, err error) {
+-	d := initxattrdest(dest, 0)
+-	destsiz := len(dest)
++func convertFromDirents11(buf []byte, old []byte) int {
++	const (
++		fixedSize    = int(unsafe.Offsetof(Dirent{}.Name))
++		oldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name))
++	)
++
++	dstPos := 0
++	srcPos := 0
++	for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) {
++		var dstDirent Dirent
++		var srcDirent dirent_freebsd11
+ 
+-	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
++		// If multiple direntries are written, sometimes when we reach the final one,
++		// we may have cap of old less than size of dirent_freebsd11.
++		copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:])
++
++		reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8)
++		if dstPos+reclen > len(buf) {
++			break
+ 		}
+ 
+-		s += stmp
+-		destsiz -= s
+-		if destsiz < 0 {
+-			destsiz = 0
++		dstDirent.Fileno = uint64(srcDirent.Fileno)
++		dstDirent.Off = 0
++		dstDirent.Reclen = uint16(reclen)
++		dstDirent.Type = srcDirent.Type
++		dstDirent.Pad0 = 0
++		dstDirent.Namlen = uint16(srcDirent.Namlen)
++		dstDirent.Pad1 = 0
++
++		copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen])
++		copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:])
++		padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen]
++		for i := range padding {
++			padding[i] = 0
+ 		}
+-		d = initxattrdest(dest, s)
++
++		dstPos += int(dstDirent.Reclen)
++		srcPos += int(srcDirent.Reclen)
+ 	}
+ 
+-	return s, e
++	return dstPos
+ }
+ 
+-func Llistxattr(link string, dest []byte) (sz int, err error) {
+-	d := initxattrdest(dest, 0)
+-	destsiz := len(dest)
++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)
++}
+ 
+-	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
+-		}
++//sys	ptrace(request int, pid int, addr uintptr, data int) (err error)
+ 
+-		s += stmp
+-		destsiz -= s
+-		if destsiz < 0 {
+-			destsiz = 0
+-		}
+-		d = initxattrdest(dest, s)
+-	}
++func PtraceAttach(pid int) (err error) {
++	return ptrace(PTRACE_ATTACH, pid, 0, 0)
++}
+ 
+-	return s, e
++func PtraceCont(pid int, signal int) (err error) {
++	return ptrace(PTRACE_CONT, pid, 1, signal)
+ }
+ 
+-//sys   ioctl(fd int, req uint, arg uintptr) (err error)
++func PtraceDetach(pid int) (err error) {
++	return ptrace(PTRACE_DETACH, pid, 1, 0)
++}
++
++func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) {
++	return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0)
++}
+ 
+-// ioctl itself should not be exposed directly, but additional get/set
+-// functions for specific types are permissible.
++func PtraceGetRegs(pid int, regsout *Reg) (err error) {
++	return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0)
++}
++
++func PtraceLwpEvents(pid int, enable int) (err error) {
++	return ptrace(PTRACE_LWPEVENTS, pid, 0, enable)
++}
++
++func PtraceLwpInfo(pid int, info uintptr) (err error) {
++	return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{})))
++}
+ 
+-// IoctlSetInt performs an ioctl operation which sets an integer value
+-// on fd, using the specified request number.
+-func IoctlSetInt(fd int, req uint, value int) error {
+-	return ioctl(fd, req, uintptr(value))
++func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) {
++	return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong)
+ }
+ 
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) {
++	return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong)
+ }
+ 
+-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {
++	return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong)
+ }
+ 
+-// IoctlGetInt performs an ioctl operation which gets an integer value
+-// from fd, using the specified request number.
+-func IoctlGetInt(fd int, req uint) (int, error) {
+-	var value int
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return value, err
++func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) {
++	return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong)
+ }
+ 
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+-	var value Winsize
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
++func PtraceSetRegs(pid int, regs *Reg) (err error) {
++	return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0)
+ }
+ 
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+-	var value Termios
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
++func PtraceSingleStep(pid int) (err error) {
++	return ptrace(PTRACE_SINGLESTEP, pid, 1, 0)
+ }
+ 
+ /*
+@@ -430,11 +596,16 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys	Fchownat(dirfd int, path string, uid int, gid int, flags 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	fstat(fd int, stat *stat_freebsd11_t) (err error)
++//sys	fstat_freebsd12(fd int, stat *Stat_t) (err error)
++//sys	fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error)
++//sys	fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error)
++//sys	fstatfs(fd int, stat *statfs_freebsd11_t) (err error)
++//sys	fstatfs_freebsd12(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	getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
++//sys	getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error)
+ //sys	Getdtablesize() (size int)
+ //sysnb	Getegid() (egid int)
+ //sysnb	Geteuid() (uid int)
+@@ -456,11 +627,13 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ //sys	Link(path string, link string) (err error)
+ //sys	Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
+ //sys	Listen(s int, backlog int) (err error)
+-//sys	Lstat(path string, stat *Stat_t) (err error)
++//sys	lstat(path string, stat *stat_freebsd11_t) (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	Mknod(path string, mode uint32, dev int) (err error)
++//sys	mknod(path string, mode uint32, dev int) (err error)
++//sys	mknodat(fd int, path string, mode uint32, dev int) (err error)
++//sys	mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)
+ //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error)
+ //sys	Open(path string, mode int, perm uint32) (fd int, err error)
+ //sys	Openat(fdat int, path string, mode int, perm uint32) (fd int, err error)
+@@ -475,7 +648,7 @@ func IoctlGetTermios(fd int, req uint) (*Termios, 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	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb	Setegid(egid int) (err error)
+ //sysnb	Seteuid(euid int) (err error)
+ //sysnb	Setgid(gid int) (err error)
+@@ -490,8 +663,9 @@ func IoctlGetTermios(fd int, req uint) (*Termios, 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	stat(path string, stat *stat_freebsd11_t) (err error)
++//sys	statfs(path string, stat *statfs_freebsd11_t) (err error)
++//sys	statfs_freebsd12(path string, stat *Statfs_t) (err error)
+ //sys	Symlink(path string, link string) (err error)
+ //sys	Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+ //sys	Sync() (err error)
+@@ -546,22 +720,14 @@ func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+ // Kqueue_portset
+ // Getattrlist
+ // Setattrlist
++// Getdents
+ // Getdirentriesattr
+ // Searchfs
+ // Delete
+ // Copyfile
+-// Poll
+ // Watchevent
+ // Waitevent
+ // Modwatch
+-// Getxattr
+-// Fgetxattr
+-// Setxattr
+-// Fsetxattr
+-// Removexattr
+-// Fremovexattr
+-// Listxattr
+-// Flistxattr
+ // Fsctl
+ // Initgroups
+ // Posix_spawn
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+index 6a0cd804..72a506dd 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
+@@ -11,21 +11,12 @@ import (
+ 	"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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
++	return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
++}
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
++	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++	return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+index e142540e..d5e376ac 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
+@@ -11,21 +11,12 @@ import (
+ 	"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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Usec = nsec % 1e9 / 1e3
+-	tv.Sec = int64(nsec / 1e9)
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,13 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceGetFsBase(pid int, fsbase *int64) (err error) {
++	return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0)
++}
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
++	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++	return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+index 5504cb12..4ea45bce 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
+@@ -11,21 +11,12 @@ import (
+ 	"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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Usec = int32(nsec % 1e9 / 1e3)
+-	tv.Sec = nsec / 1e9
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)}
++	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++	return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+similarity index 59%
+copy from vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
+copy to vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+index da7cb798..aa5326db 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go
+@@ -1,8 +1,8 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
++// Copyright 2018 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
++// +build arm64,freebsd
+ 
+ package unix
+ 
+@@ -11,21 +11,12 @@ import (
+ 	"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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Usec = nsec % 1e9 / 1e3
+-	tv.Sec = int64(nsec / 1e9)
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -42,6 +33,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+@@ -59,3 +54,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ }
+ 
+ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
++
++func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) {
++	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)}
++	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0)
++	return int(ioDesc.Len), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_illumos.go b/vendor/golang.org/x/sys/unix/syscall_illumos.go
+new file mode 100644
+index 00000000..99e62dcd
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_illumos.go
+@@ -0,0 +1,57 @@
++// 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.
++
++// illumos system calls not present on Solaris.
++
++// +build amd64,illumos
++
++package unix
++
++import "unsafe"
++
++func bytes2iovec(bs [][]byte) []Iovec {
++	iovecs := make([]Iovec, len(bs))
++	for i, b := range bs {
++		iovecs[i].SetLen(len(b))
++		if len(b) > 0 {
++			// somehow Iovec.Base on illumos is (*int8), not (*byte)
++			iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0]))
++		} else {
++			iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero))
++		}
++	}
++	return iovecs
++}
++
++//sys   readv(fd int, iovs []Iovec) (n int, err error)
++
++func Readv(fd int, iovs [][]byte) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	n, err = readv(fd, iovecs)
++	return n, err
++}
++
++//sys   preadv(fd int, iovs []Iovec, off int64) (n int, err error)
++
++func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	n, err = preadv(fd, iovecs, off)
++	return n, err
++}
++
++//sys   writev(fd int, iovs []Iovec) (n int, err error)
++
++func Writev(fd int, iovs [][]byte) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	n, err = writev(fd, iovecs)
++	return n, err
++}
++
++//sys   pwritev(fd int, iovs []Iovec, off int64) (n int, err error)
++
++func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	n, err = pwritev(fd, iovecs, off)
++	return n, err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
+index 1b7d59d8..bbe1abbc 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
+@@ -12,6 +12,8 @@
+ package unix
+ 
+ import (
++	"encoding/binary"
++	"runtime"
+ 	"syscall"
+ 	"unsafe"
+ )
+@@ -36,6 +38,20 @@ func Creat(path string, mode uint32) (fd int, err error) {
+ 	return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)
+ }
+ 
++//sys	FanotifyInit(flags uint, event_f_flags uint) (fd int, err error)
++//sys	fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)
++
++func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {
++	if pathname == "" {
++		return fanotifyMark(fd, flags, mask, dirFd, nil)
++	}
++	p, err := BytePtrFromString(pathname)
++	if err != nil {
++		return err
++	}
++	return fanotifyMark(fd, flags, mask, dirFd, p)
++}
++
+ //sys	fchmodat(dirfd int, path string, mode uint32) (err error)
+ 
+ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+@@ -55,37 +71,41 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ // ioctl itself should not be exposed directly, but additional get/set
+ // functions for specific types are permissible.
+ 
+-// IoctlSetInt performs an ioctl operation which sets an integer value
+-// on fd, using the specified request number.
+-func IoctlSetInt(fd int, req uint, value int) error {
+-	return ioctl(fd, req, uintptr(value))
++// IoctlRetInt performs an ioctl operation specified by req on a device
++// associated with opened file descriptor fd, and returns a non-negative
++// integer that is returned by the ioctl syscall.
++func IoctlRetInt(fd int, req uint) (int, error) {
++	ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0)
++	if err != 0 {
++		return 0, err
++	}
++	return int(ret), nil
+ }
+ 
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) error {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++// IoctlSetPointerInt performs an ioctl operation which sets an
++// integer value on fd, using the specified request number. The ioctl
++// argument is called with a pointer to the integer value, rather than
++// passing the integer value directly.
++func IoctlSetPointerInt(fd int, req uint, value int) error {
++	v := int32(value)
++	return ioctl(fd, req, uintptr(unsafe.Pointer(&v)))
+ }
+ 
+-func IoctlSetTermios(fd int, req uint, value *Termios) error {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++func IoctlSetRTCTime(fd int, value *RTCTime) error {
++	err := ioctl(fd, RTC_SET_TIME, uintptr(unsafe.Pointer(value)))
++	runtime.KeepAlive(value)
++	return err
+ }
+ 
+-// IoctlGetInt performs an ioctl operation which gets an integer value
+-// from fd, using the specified request number.
+-func IoctlGetInt(fd int, req uint) (int, error) {
+-	var value int
++func IoctlGetUint32(fd int, req uint) (uint32, error) {
++	var value uint32
+ 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+ 	return value, err
+ }
+ 
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+-	var value Winsize
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
+-}
+-
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+-	var value Termios
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++func IoctlGetRTCTime(fd int) (*RTCTime, error) {
++	var value RTCTime
++	err := ioctl(fd, RTC_RD_TIME, uintptr(unsafe.Pointer(&value)))
+ 	return &value, err
+ }
+ 
+@@ -148,8 +168,6 @@ func Unlink(path string) error {
+ 
+ //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)
+@@ -207,20 +225,14 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ 	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)
++		return futimesat(dirfd, path, nil)
+ 	}
+ 	if len(tv) != 2 {
+ 		return EINVAL
+ 	}
+-	return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
++	return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+ }
+ 
+ func Futimes(fd int, tv []Timeval) (err error) {
+@@ -255,7 +267,7 @@ func Getgroups() (gids []int, err error) {
+ 		return nil, nil
+ 	}
+ 
+-	// Sanity check group count.  Max is 1<<16 on Linux.
++	// Sanity check group count. Max is 1<<16 on Linux.
+ 	if n < 0 || n > 1<<20 {
+ 		return nil, EINVAL
+ 	}
+@@ -290,8 +302,8 @@ type WaitStatus uint32
+ // 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
++// 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.
+ 
+@@ -413,6 +425,7 @@ func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	return unsafe.Pointer(&sa.raw), sl, nil
+ }
+ 
++// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets.
+ type SockaddrLinklayer struct {
+ 	Protocol uint16
+ 	Ifindex  int
+@@ -439,6 +452,7 @@ func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil
+ }
+ 
++// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets.
+ type SockaddrNetlink struct {
+ 	Family uint16
+ 	Pad    uint16
+@@ -455,6 +469,8 @@ func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil
+ }
+ 
++// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets
++// using the HCI protocol.
+ type SockaddrHCI struct {
+ 	Dev     uint16
+ 	Channel uint16
+@@ -468,6 +484,72 @@ func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
+ }
+ 
++// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets
++// using the L2CAP protocol.
++type SockaddrL2 struct {
++	PSM      uint16
++	CID      uint16
++	Addr     [6]uint8
++	AddrType uint8
++	raw      RawSockaddrL2
++}
++
++func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	sa.raw.Family = AF_BLUETOOTH
++	psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm))
++	psm[0] = byte(sa.PSM)
++	psm[1] = byte(sa.PSM >> 8)
++	for i := 0; i < len(sa.Addr); i++ {
++		sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i]
++	}
++	cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid))
++	cid[0] = byte(sa.CID)
++	cid[1] = byte(sa.CID >> 8)
++	sa.raw.Bdaddr_type = sa.AddrType
++	return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil
++}
++
++// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets
++// using the RFCOMM protocol.
++//
++// Server example:
++//
++//      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
++//      _ = unix.Bind(fd, &unix.SockaddrRFCOMM{
++//      	Channel: 1,
++//      	Addr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00
++//      })
++//      _ = Listen(fd, 1)
++//      nfd, sa, _ := Accept(fd)
++//      fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd)
++//      Read(nfd, buf)
++//
++// Client example:
++//
++//      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
++//      _ = Connect(fd, &SockaddrRFCOMM{
++//      	Channel: 1,
++//      	Addr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11
++//      })
++//      Write(fd, []byte(`hello`))
++type SockaddrRFCOMM struct {
++	// Addr represents a bluetooth address, byte ordering is little-endian.
++	Addr [6]uint8
++
++	// Channel is a designated bluetooth channel, only 1-30 are available for use.
++	// Since Linux 2.6.7 and further zero value is the first available channel.
++	Channel uint8
++
++	raw RawSockaddrRFCOMM
++}
++
++func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	sa.raw.Family = AF_BLUETOOTH
++	sa.raw.Channel = sa.Channel
++	sa.raw.Bdaddr = sa.Addr
++	return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, 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
+@@ -630,7 +712,168 @@ func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ 	return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil
+ }
+ 
+-func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
++type SockaddrXDP struct {
++	Flags        uint16
++	Ifindex      uint32
++	QueueID      uint32
++	SharedUmemFD uint32
++	raw          RawSockaddrXDP
++}
++
++func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	sa.raw.Family = AF_XDP
++	sa.raw.Flags = sa.Flags
++	sa.raw.Ifindex = sa.Ifindex
++	sa.raw.Queue_id = sa.QueueID
++	sa.raw.Shared_umem_fd = sa.SharedUmemFD
++
++	return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil
++}
++
++// This constant mirrors the #define of PX_PROTO_OE in
++// linux/if_pppox.h. We're defining this by hand here instead of
++// autogenerating through mkerrors.sh because including
++// linux/if_pppox.h causes some declaration conflicts with other
++// includes (linux/if_pppox.h includes linux/in.h, which conflicts
++// with netinet/in.h). Given that we only need a single zero constant
++// out of that file, it's cleaner to just define it by hand here.
++const px_proto_oe = 0
++
++type SockaddrPPPoE struct {
++	SID    uint16
++	Remote []byte
++	Dev    string
++	raw    RawSockaddrPPPoX
++}
++
++func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	if len(sa.Remote) != 6 {
++		return nil, 0, EINVAL
++	}
++	if len(sa.Dev) > IFNAMSIZ-1 {
++		return nil, 0, EINVAL
++	}
++
++	*(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX
++	// This next field is in host-endian byte order. We can't use the
++	// same unsafe pointer cast as above, because this value is not
++	// 32-bit aligned and some architectures don't allow unaligned
++	// access.
++	//
++	// However, the value of px_proto_oe is 0, so we can use
++	// encoding/binary helpers to write the bytes without worrying
++	// about the ordering.
++	binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe)
++	// This field is deliberately big-endian, unlike the previous
++	// one. The kernel expects SID to be in network byte order.
++	binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID)
++	copy(sa.raw[8:14], sa.Remote)
++	for i := 14; i < 14+IFNAMSIZ; i++ {
++		sa.raw[i] = 0
++	}
++	copy(sa.raw[14:], sa.Dev)
++	return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil
++}
++
++// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets.
++// For more information on TIPC, see: http://tipc.sourceforge.net/.
++type SockaddrTIPC struct {
++	// Scope is the publication scopes when binding service/service range.
++	// Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE.
++	Scope int
++
++	// Addr is the type of address used to manipulate a socket. Addr must be
++	// one of:
++	//  - *TIPCSocketAddr: "id" variant in the C addr union
++	//  - *TIPCServiceRange: "nameseq" variant in the C addr union
++	//  - *TIPCServiceName: "name" variant in the C addr union
++	//
++	// If nil, EINVAL will be returned when the structure is used.
++	Addr TIPCAddr
++
++	raw RawSockaddrTIPC
++}
++
++// TIPCAddr is implemented by types that can be used as an address for
++// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange,
++// and *TIPCServiceName.
++type TIPCAddr interface {
++	tipcAddrtype() uint8
++	tipcAddr() [12]byte
++}
++
++func (sa *TIPCSocketAddr) tipcAddr() [12]byte {
++	var out [12]byte
++	copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:])
++	return out
++}
++
++func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR }
++
++func (sa *TIPCServiceRange) tipcAddr() [12]byte {
++	var out [12]byte
++	copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:])
++	return out
++}
++
++func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE }
++
++func (sa *TIPCServiceName) tipcAddr() [12]byte {
++	var out [12]byte
++	copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:])
++	return out
++}
++
++func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR }
++
++func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	if sa.Addr == nil {
++		return nil, 0, EINVAL
++	}
++
++	sa.raw.Family = AF_TIPC
++	sa.raw.Scope = int8(sa.Scope)
++	sa.raw.Addrtype = sa.Addr.tipcAddrtype()
++	sa.raw.Addr = sa.Addr.tipcAddr()
++
++	return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil
++}
++
++// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets.
++type SockaddrL2TPIP struct {
++	Addr   [4]byte
++	ConnId uint32
++	raw    RawSockaddrL2TPIP
++}
++
++func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	sa.raw.Family = AF_INET
++	sa.raw.Conn_id = sa.ConnId
++	for i := 0; i < len(sa.Addr); i++ {
++		sa.raw.Addr[i] = sa.Addr[i]
++	}
++	return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil
++}
++
++// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets.
++type SockaddrL2TPIP6 struct {
++	Addr   [16]byte
++	ZoneId uint32
++	ConnId uint32
++	raw    RawSockaddrL2TPIP6
++}
++
++func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) {
++	sa.raw.Family = AF_INET6
++	sa.raw.Conn_id = sa.ConnId
++	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), SizeofSockaddrL2TPIP6, nil
++}
++
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
+ 	switch rsa.Addr.Family {
+ 	case AF_NETLINK:
+ 		pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa))
+@@ -675,30 +918,63 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ 		for n < len(pp.Path) && pp.Path[n] != 0 {
+ 			n++
+ 		}
+-		bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++		bytes := (*[len(pp.Path)]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]
++		proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
++		if err != nil {
++			return nil, err
++		}
++
++		switch proto {
++		case IPPROTO_L2TP:
++			pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa))
++			sa := new(SockaddrL2TPIP)
++			sa.ConnId = pp.Conn_id
++			for i := 0; i < len(sa.Addr); i++ {
++				sa.Addr[i] = pp.Addr[i]
++			}
++			return sa, nil
++		default:
++			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
+ 		}
+-		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]
++		proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
++		if err != nil {
++			return nil, err
++		}
++
++		switch proto {
++		case IPPROTO_L2TP:
++			pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa))
++			sa := new(SockaddrL2TPIP6)
++			sa.ConnId = pp.Conn_id
++			sa.ZoneId = pp.Scope_id
++			for i := 0; i < len(sa.Addr); i++ {
++				sa.Addr[i] = pp.Addr[i]
++			}
++			return sa, nil
++		default:
++			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 sa, nil
+ 
+ 	case AF_VSOCK:
+ 		pp := (*RawSockaddrVM)(unsafe.Pointer(rsa))
+@@ -706,6 +982,76 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ 			CID:  pp.Cid,
+ 			Port: pp.Port,
+ 		}
++		return sa, nil
++	case AF_BLUETOOTH:
++		proto, err := GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL)
++		if err != nil {
++			return nil, err
++		}
++		// only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections
++		switch proto {
++		case BTPROTO_L2CAP:
++			pp := (*RawSockaddrL2)(unsafe.Pointer(rsa))
++			sa := &SockaddrL2{
++				PSM:      pp.Psm,
++				CID:      pp.Cid,
++				Addr:     pp.Bdaddr,
++				AddrType: pp.Bdaddr_type,
++			}
++			return sa, nil
++		case BTPROTO_RFCOMM:
++			pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa))
++			sa := &SockaddrRFCOMM{
++				Channel: pp.Channel,
++				Addr:    pp.Bdaddr,
++			}
++			return sa, nil
++		}
++	case AF_XDP:
++		pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa))
++		sa := &SockaddrXDP{
++			Flags:        pp.Flags,
++			Ifindex:      pp.Ifindex,
++			QueueID:      pp.Queue_id,
++			SharedUmemFD: pp.Shared_umem_fd,
++		}
++		return sa, nil
++	case AF_PPPOX:
++		pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa))
++		if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe {
++			return nil, EINVAL
++		}
++		sa := &SockaddrPPPoE{
++			SID:    binary.BigEndian.Uint16(pp[6:8]),
++			Remote: pp[8:14],
++		}
++		for i := 14; i < 14+IFNAMSIZ; i++ {
++			if pp[i] == 0 {
++				sa.Dev = string(pp[14:i])
++				break
++			}
++		}
++		return sa, nil
++	case AF_TIPC:
++		pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa))
++
++		sa := &SockaddrTIPC{
++			Scope: int(pp.Scope),
++		}
++
++		// Determine which union variant is present in pp.Addr by checking
++		// pp.Addrtype.
++		switch pp.Addrtype {
++		case TIPC_SERVICE_RANGE:
++			sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr))
++		case TIPC_SERVICE_ADDR:
++			sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr))
++		case TIPC_SOCKET_ADDR:
++			sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr))
++		default:
++			return nil, EINVAL
++		}
++
+ 		return sa, nil
+ 	}
+ 	return nil, EAFNOSUPPORT
+@@ -718,7 +1064,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	sa, err = anyToSockaddr(&rsa)
++	sa, err = anyToSockaddr(fd, &rsa)
+ 	if err != nil {
+ 		Close(nfd)
+ 		nfd = 0
+@@ -736,7 +1082,7 @@ func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) {
+ 	if len > SizeofSockaddrAny {
+ 		panic("RawSockaddrAny too small")
+ 	}
+-	sa, err = anyToSockaddr(&rsa)
++	sa, err = anyToSockaddr(fd, &rsa)
+ 	if err != nil {
+ 		Close(nfd)
+ 		nfd = 0
+@@ -750,20 +1096,7 @@ func Getsockname(fd int) (sa Sockaddr, err error) {
+ 	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
++	return anyToSockaddr(fd, &rsa)
+ }
+ 
+ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+@@ -773,37 +1106,48 @@ func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) {
+ 	return &value, err
+ }
+ 
+-func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) {
+-	var value IPv6Mreq
+-	vallen := _Socklen(SizeofIPv6Mreq)
++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 GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) {
+-	var value IPv6MTUInfo
+-	vallen := _Socklen(SizeofIPv6MTUInfo)
++func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {
++	var value TCPInfo
++	vallen := _Socklen(SizeofTCPInfo)
+ 	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
++// GetsockoptString returns the string value of the socket option opt for the
++// socket associated with fd at the given socket level.
++func GetsockoptString(fd, level, opt int) (string, error) {
++	buf := make([]byte, 256)
++	vallen := _Socklen(len(buf))
++	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++	if err != nil {
++		if err == ERANGE {
++			buf = make([]byte, vallen)
++			err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++		}
++		if err != nil {
++			return "", err
++		}
++	}
++	return string(buf[:vallen-1]), nil
+ }
+ 
+-func GetsockoptUcred(fd, level, opt int) (*Ucred, error) {
+-	var value Ucred
+-	vallen := _Socklen(SizeofUcred)
++func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {
++	var value TpacketStats
++	vallen := _Socklen(SizeofTpacketStats)
+ 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ 	return &value, err
+ }
+ 
+-func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) {
+-	var value TCPInfo
+-	vallen := _Socklen(SizeofTCPInfo)
++func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {
++	var value TpacketStatsV3
++	vallen := _Socklen(SizeofTpacketStatsV3)
+ 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
+ 	return &value, err
+ }
+@@ -812,6 +1156,32 @@ func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
+ 	return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
+ }
+ 
++func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {
++	return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
++}
++
++// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a
++// socket to filter incoming packets.  See 'man 7 socket' for usage information.
++func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {
++	return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))
++}
++
++func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {
++	var p unsafe.Pointer
++	if len(filter) > 0 {
++		p = unsafe.Pointer(&filter[0])
++	}
++	return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))
++}
++
++func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {
++	return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
++}
++
++func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {
++	return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
++}
++
+ // Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
+ 
+ // KeyctlInt calls keyctl commands in which each argument is an int.
+@@ -919,6 +1289,34 @@ func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error
+ 	return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer)
+ }
+ 
++// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This
++// command limits the set of keys that can be linked to the keyring, regardless
++// of keyring permissions. The command requires the "setattr" permission.
++//
++// When called with an empty keyType the command locks the keyring, preventing
++// any further keys from being linked to the keyring.
++//
++// The "asymmetric" keyType defines restrictions requiring key payloads to be
++// DER encoded X.509 certificates signed by keys in another keyring. Restrictions
++// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted",
++// "key_or_keyring:<key>", and "key_or_keyring:<key>:chain".
++//
++// As of Linux 4.12, only the "asymmetric" keyType defines type-specific
++// restrictions.
++//
++// See the full documentation at:
++// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html
++// http://man7.org/linux/man-pages/man2/keyctl.2.html
++func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error {
++	if keyType == "" {
++		return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid)
++	}
++	return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction)
++}
++
++//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL
++//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL
++
+ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) {
+ 	var msg Msghdr
+ 	var rsa RawSockaddrAny
+@@ -926,22 +1324,24 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ 	msg.Namelen = uint32(SizeofSockaddrAny)
+ 	var iov Iovec
+ 	if len(p) > 0 {
+-		iov.Base = (*byte)(unsafe.Pointer(&p[0]))
++		iov.Base = &p[0]
+ 		iov.SetLen(len(p))
+ 	}
+ 	var dummy byte
+ 	if len(oob) > 0 {
+-		var sockType int
+-		sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
+-		if err != nil {
+-			return
++		if len(p) == 0 {
++			var sockType int
++			sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
++			if err != nil {
++				return
++			}
++			// receive at least one normal byte
++			if sockType != SOCK_DGRAM {
++				iov.Base = &dummy
++				iov.SetLen(1)
++			}
+ 		}
+-		// receive at least one normal byte
+-		if sockType != SOCK_DGRAM && len(p) == 0 {
+-			iov.Base = &dummy
+-			iov.SetLen(1)
+-		}
+-		msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
++		msg.Control = &oob[0]
+ 		msg.SetControllen(len(oob))
+ 	}
+ 	msg.Iov = &iov
+@@ -953,7 +1353,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ 	recvflags = int(msg.Flags)
+ 	// source address is only specified if the socket is unconnected
+ 	if rsa.Addr.Family != AF_UNSPEC {
+-		from, err = anyToSockaddr(&rsa)
++		from, err = anyToSockaddr(fd, &rsa)
+ 	}
+ 	return
+ }
+@@ -974,26 +1374,28 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error)
+ 		}
+ 	}
+ 	var msg Msghdr
+-	msg.Name = (*byte)(unsafe.Pointer(ptr))
++	msg.Name = (*byte)(ptr)
+ 	msg.Namelen = uint32(salen)
+ 	var iov Iovec
+ 	if len(p) > 0 {
+-		iov.Base = (*byte)(unsafe.Pointer(&p[0]))
++		iov.Base = &p[0]
+ 		iov.SetLen(len(p))
+ 	}
+ 	var dummy byte
+ 	if len(oob) > 0 {
+-		var sockType int
+-		sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
+-		if err != nil {
+-			return 0, err
++		if len(p) == 0 {
++			var sockType int
++			sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE)
++			if err != nil {
++				return 0, err
++			}
++			// send at least one normal byte
++			if sockType != SOCK_DGRAM {
++				iov.Base = &dummy
++				iov.SetLen(1)
++			}
+ 		}
+-		// send at least one normal byte
+-		if sockType != SOCK_DGRAM && len(p) == 0 {
+-			iov.Base = &dummy
+-			iov.SetLen(1)
+-		}
+-		msg.Control = (*byte)(unsafe.Pointer(&oob[0]))
++		msg.Control = &oob[0]
+ 		msg.SetControllen(len(oob))
+ 	}
+ 	msg.Iov = &iov
+@@ -1021,20 +1423,20 @@ func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err erro
+ 	// The ptrace syscall differs from glibc's ptrace.
+ 	// Peeks returns the word in *data, not as the return value.
+ 
+-	var buf [sizeofPtr]byte
++	var buf [SizeofPtr]byte
+ 
+-	// Leading edge.  PEEKTEXT/PEEKDATA don't require aligned
++	// 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 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:])
++		n += copy(out, buf[addr%SizeofPtr:])
+ 		out = out[n:]
+ 	}
+ 
+@@ -1072,15 +1474,15 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
+ 
+ 	// 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 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)
++		n += copy(buf[addr%SizeofPtr:], data)
+ 		word := *((*uintptr)(unsafe.Pointer(&buf[0])))
+-		err = ptrace(pokeReq, pid, addr-addr%sizeofPtr, word)
++		err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word)
+ 		if err != nil {
+ 			return 0, err
+ 		}
+@@ -1088,19 +1490,19 @@ func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (c
+ 	}
+ 
+ 	// Interior.
+-	for len(data) > sizeofPtr {
++	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:]
++		n += SizeofPtr
++		data = data[SizeofPtr:]
+ 	}
+ 
+ 	// Trailing edge.
+ 	if len(data) > 0 {
+-		var buf [sizeofPtr]byte
++		var buf [SizeofPtr]byte
+ 		err = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0])))
+ 		if err != nil {
+ 			return n, err
+@@ -1125,6 +1527,10 @@ func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) {
+ 	return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data)
+ }
+ 
++func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) {
++	return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data)
++}
++
+ func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) {
+ 	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
+ }
+@@ -1154,8 +1560,12 @@ func PtraceSyscall(pid int, signal int) (err error) {
+ 
+ func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) }
+ 
++func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) }
++
+ func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) }
+ 
++func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, 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)
+@@ -1164,10 +1574,6 @@ 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))
+ }
+@@ -1199,6 +1605,13 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri
+ 	return mount(source, target, fstype, flags, datap)
+ }
+ 
++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)
++}
++
+ // Sendto
+ // Recvfrom
+ // Socketpair
+@@ -1209,26 +1622,33 @@ func Mount(source string, target string, fstype string, flags uintptr, data stri
+ //sys	Acct(path string) (err error)
+ //sys	AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error)
+ //sys	Adjtimex(buf *Timex) (state int, err error)
++//sysnb	Capget(hdr *CapUserHeader, data *CapUserData) (err error)
++//sysnb	Capset(hdr *CapUserHeader, data *CapUserData) (err error)
+ //sys	Chdir(path string) (err error)
+ //sys	Chroot(path string) (err error)
++//sys	ClockGetres(clockid int32, res *Timespec) (err error)
+ //sys	ClockGettime(clockid int32, time *Timespec) (err error)
++//sys	ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error)
+ //sys	Close(fd int) (err error)
+ //sys	CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
++//sys	DeleteModule(name string, flags 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	Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2
+ //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	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	Fgetxattr(fd int, attr string, dest []byte) (sz int, err error)
++//sys	FinitModule(fd int, params string, flags int) (err error)
++//sys	Flistxattr(fd int, dest []byte) (sz int, err error)
+ //sys	Flock(fd int, how int) (err error)
++//sys	Fremovexattr(fd int, attr string) (err error)
++//sys	Fsetxattr(fd int, attr string, dest []byte, flags 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)
+@@ -1246,6 +1666,7 @@ func Getpgrp() (pid int) {
+ //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	InitModule(moduleImage []byte, params string) (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)
+@@ -1256,15 +1677,18 @@ func Getpgrp() (pid int) {
+ //sys	Llistxattr(path string, dest []byte) (sz int, err error)
+ //sys	Lremovexattr(path string, attr string) (err error)
+ //sys	Lsetxattr(path string, attr string, data []byte, flags int) (err error)
++//sys	MemfdCreate(name string, flags int) (fd 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	PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, 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	Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6
+ //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	Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error)
+ //sys	RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error)
+ //sys	Setdomainname(p []byte) (err error)
+ //sys	Sethostname(p []byte) (err error)
+@@ -1273,6 +1697,17 @@ func Getpgrp() (pid int) {
+ //sysnb	Settimeofday(tv *Timeval) (err error)
+ //sys	Setns(fd int, nstype int) (err error)
+ 
++// PrctlRetInt performs a prctl operation specified by option and further
++// optional arguments arg2 through arg5 depending on option. It returns a
++// non-negative integer that is returned by the prctl syscall.
++func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) {
++	ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0)
++	if err != 0 {
++		return 0, err
++	}
++	return int(ret), nil
++}
++
+ // 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
+@@ -1286,8 +1721,38 @@ func Setgid(uid int) (err error) {
+ 	return EOPNOTSUPP
+ }
+ 
++// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set.
++// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability.
++// If the call fails due to other reasons, current fsgid will be returned.
++func SetfsgidRetGid(gid int) (int, error) {
++	return setfsgid(gid)
++}
++
++// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set.
++// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability
++// If the call fails due to other reasons, current fsuid will be returned.
++func SetfsuidRetUid(uid int) (int, error) {
++	return setfsuid(uid)
++}
++
++func Setfsgid(gid int) error {
++	_, err := setfsgid(gid)
++	return err
++}
++
++func Setfsuid(uid int) error {
++	_, err := setfsuid(uid)
++	return err
++}
++
++func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) {
++	return signalfd(fd, sigmask, _C__NSIG/8, flags)
++}
++
+ //sys	Setpriority(which int, who int, prio int) (err error)
+ //sys	Setxattr(path string, attr string, data []byte, flags int) (err error)
++//sys	signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4
++//sys	Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error)
+ //sys	Sync()
+ //sys	Syncfs(fd int) (err error)
+ //sysnb	Sysinfo(info *Sysinfo_t) (err error)
+@@ -1298,11 +1763,127 @@ func Setgid(uid int) (err error) {
+ //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
++//sys	readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV
++//sys	writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV
++//sys	preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV
++//sys	pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV
++//sys	preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2
++//sys	pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2
++
++func bytes2iovec(bs [][]byte) []Iovec {
++	iovecs := make([]Iovec, len(bs))
++	for i, b := range bs {
++		iovecs[i].SetLen(len(b))
++		if len(b) > 0 {
++			iovecs[i].Base = &b[0]
++		} else {
++			iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero))
++		}
++	}
++	return iovecs
++}
++
++// offs2lohi splits offs into its lower and upper unsigned long. On 64-bit
++// systems, hi will always be 0. On 32-bit systems, offs will be split in half.
++// preadv/pwritev chose this calling convention so they don't need to add a
++// padding-register for alignment on ARM.
++func offs2lohi(offs int64) (lo, hi uintptr) {
++	return uintptr(offs), uintptr(uint64(offs) >> SizeofLong)
++}
++
++func Readv(fd int, iovs [][]byte) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	n, err = readv(fd, iovecs)
++	readvRacedetect(iovecs, n, err)
++	return n, err
++}
++
++func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	lo, hi := offs2lohi(offset)
++	n, err = preadv(fd, iovecs, lo, hi)
++	readvRacedetect(iovecs, n, err)
++	return n, err
++}
++
++func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	lo, hi := offs2lohi(offset)
++	n, err = preadv2(fd, iovecs, lo, hi, flags)
++	readvRacedetect(iovecs, n, err)
++	return n, err
++}
++
++func readvRacedetect(iovecs []Iovec, n int, err error) {
++	if !raceenabled {
++		return
++	}
++	for i := 0; n > 0 && i < len(iovecs); i++ {
++		m := int(iovecs[i].Len)
++		if m > n {
++			m = n
++		}
++		n -= m
++		if m > 0 {
++			raceWriteRange(unsafe.Pointer(iovecs[i].Base), m)
++		}
++	}
++	if err == nil {
++		raceAcquire(unsafe.Pointer(&ioSync))
++	}
++}
++
++func Writev(fd int, iovs [][]byte) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	if raceenabled {
++		raceReleaseMerge(unsafe.Pointer(&ioSync))
++	}
++	n, err = writev(fd, iovecs)
++	writevRacedetect(iovecs, n)
++	return n, err
++}
++
++func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	if raceenabled {
++		raceReleaseMerge(unsafe.Pointer(&ioSync))
++	}
++	lo, hi := offs2lohi(offset)
++	n, err = pwritev(fd, iovecs, lo, hi)
++	writevRacedetect(iovecs, n)
++	return n, err
++}
++
++func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) {
++	iovecs := bytes2iovec(iovs)
++	if raceenabled {
++		raceReleaseMerge(unsafe.Pointer(&ioSync))
++	}
++	lo, hi := offs2lohi(offset)
++	n, err = pwritev2(fd, iovecs, lo, hi, flags)
++	writevRacedetect(iovecs, n)
++	return n, err
++}
++
++func writevRacedetect(iovecs []Iovec, n int) {
++	if !raceenabled {
++		return
++	}
++	for i := 0; n > 0 && i < len(iovecs); i++ {
++		m := int(iovecs[i].Len)
++		if m > n {
++			m = n
++		}
++		n -= m
++		if m > 0 {
++			raceReadRange(unsafe.Pointer(iovecs[i].Base), m)
++		}
++	}
++}
+ 
+ // mmap varies by architecture; see syscall_linux_*.go.
+ //sys	munmap(addr uintptr, length uintptr) (err error)
+@@ -1332,15 +1913,12 @@ func Munmap(b []byte) (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,
+-	)
++	var p unsafe.Pointer
++	if len(iovs) > 0 {
++		p = unsafe.Pointer(&iovs[0])
++	}
++
++	n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0)
+ 	if errno != 0 {
+ 		return 0, syscall.Errno(errno)
+ 	}
+@@ -1348,6 +1926,164 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ 	return int(n), nil
+ }
+ 
++//sys	faccessat(dirfd int, path string, mode uint32) (err error)
++
++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
++	if flags & ^(AT_SYMLINK_NOFOLLOW|AT_EACCESS) != 0 {
++		return EINVAL
++	}
++
++	// The Linux kernel faccessat system call does not take any flags.
++	// The glibc faccessat implements the flags itself; see
++	// https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/faccessat.c;hb=HEAD
++	// Because people naturally expect syscall.Faccessat to act
++	// like C faccessat, we do the same.
++
++	if flags == 0 {
++		return faccessat(dirfd, path, mode)
++	}
++
++	var st Stat_t
++	if err := Fstatat(dirfd, path, &st, flags&AT_SYMLINK_NOFOLLOW); err != nil {
++		return err
++	}
++
++	mode &= 7
++	if mode == 0 {
++		return nil
++	}
++
++	var uid int
++	if flags&AT_EACCESS != 0 {
++		uid = Geteuid()
++	} else {
++		uid = Getuid()
++	}
++
++	if uid == 0 {
++		if mode&1 == 0 {
++			// Root can read and write any file.
++			return nil
++		}
++		if st.Mode&0111 != 0 {
++			// Root can execute any file that anybody can execute.
++			return nil
++		}
++		return EACCES
++	}
++
++	var fmode uint32
++	if uint32(uid) == st.Uid {
++		fmode = (st.Mode >> 6) & 7
++	} else {
++		var gid int
++		if flags&AT_EACCESS != 0 {
++			gid = Getegid()
++		} else {
++			gid = Getgid()
++		}
++
++		if uint32(gid) == st.Gid {
++			fmode = (st.Mode >> 3) & 7
++		} else {
++			fmode = st.Mode & 7
++		}
++	}
++
++	if fmode&mode == mode {
++		return nil
++	}
++
++	return EACCES
++}
++
++//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT
++//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT
++
++// fileHandle is the argument to nameToHandleAt and openByHandleAt. We
++// originally tried to generate it via unix/linux/types.go with "type
++// fileHandle C.struct_file_handle" but that generated empty structs
++// for mips64 and mips64le. Instead, hard code it for now (it's the
++// same everywhere else) until the mips64 generator issue is fixed.
++type fileHandle struct {
++	Bytes uint32
++	Type  int32
++}
++
++// FileHandle represents the C struct file_handle used by
++// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see
++// OpenByHandleAt).
++type FileHandle struct {
++	*fileHandle
++}
++
++// NewFileHandle constructs a FileHandle.
++func NewFileHandle(handleType int32, handle []byte) FileHandle {
++	const hdrSize = unsafe.Sizeof(fileHandle{})
++	buf := make([]byte, hdrSize+uintptr(len(handle)))
++	copy(buf[hdrSize:], handle)
++	fh := (*fileHandle)(unsafe.Pointer(&buf[0]))
++	fh.Type = handleType
++	fh.Bytes = uint32(len(handle))
++	return FileHandle{fh}
++}
++
++func (fh *FileHandle) Size() int   { return int(fh.fileHandle.Bytes) }
++func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type }
++func (fh *FileHandle) Bytes() []byte {
++	n := fh.Size()
++	if n == 0 {
++		return nil
++	}
++	return (*[1 << 30]byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type)) + 4))[:n:n]
++}
++
++// NameToHandleAt wraps the name_to_handle_at system call; it obtains
++// a handle for a path name.
++func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) {
++	var mid _C_int
++	// Try first with a small buffer, assuming the handle will
++	// only be 32 bytes.
++	size := uint32(32 + unsafe.Sizeof(fileHandle{}))
++	didResize := false
++	for {
++		buf := make([]byte, size)
++		fh := (*fileHandle)(unsafe.Pointer(&buf[0]))
++		fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{}))
++		err = nameToHandleAt(dirfd, path, fh, &mid, flags)
++		if err == EOVERFLOW {
++			if didResize {
++				// We shouldn't need to resize more than once
++				return
++			}
++			didResize = true
++			size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{}))
++			continue
++		}
++		if err != nil {
++			return
++		}
++		return FileHandle{fh}, int(mid), nil
++	}
++}
++
++// OpenByHandleAt wraps the open_by_handle_at system call; it opens a
++// file via a handle as previously returned by NameToHandleAt.
++func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) {
++	return openByHandleAt(mountFD, handle.fileHandle, flags)
++}
++
++// Klogset wraps the sys_syslog system call; it sets console_loglevel to
++// the value specified by arg and passes a dummy pointer to bufp.
++func Klogset(typ int, arg int) (err error) {
++	var p unsafe.Pointer
++	_, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg))
++	if errno != 0 {
++		return errnoErr(errno)
++	}
++	return nil
++}
++
+ /*
+  * Unimplemented
+  */
+@@ -1355,23 +2091,14 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // Alarm
+ // ArchPrctl
+ // Brk
+-// Capget
+-// Capset
+-// ClockGetres
+ // ClockNanosleep
+ // ClockSettime
+ // Clone
+-// CreateModule
+-// DeleteModule
+ // EpollCtlOld
+ // EpollPwait
+ // EpollWaitOld
+ // Execve
+-// Fgetxattr
+-// Flistxattr
+ // Fork
+-// Fremovexattr
+-// Fsetxattr
+ // Futex
+ // GetKernelSyms
+ // GetMempolicy
+@@ -1405,13 +2132,11 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // Msgget
+ // Msgrcv
+ // Msgsnd
+-// Newfstatat
+ // Nfsservctl
+ // Personality
+ // Pselect6
+ // Ptrace
+ // Putpmsg
+-// QueryModule
+ // Quotactl
+ // Readahead
+ // Readv
+@@ -1426,11 +2151,9 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // RtSigtimedwait
+ // SchedGetPriorityMax
+ // SchedGetPriorityMin
+-// SchedGetaffinity
+ // SchedGetparam
+ // SchedGetscheduler
+ // SchedRrGetInterval
+-// SchedSetaffinity
+ // SchedSetparam
+ // SchedYield
+ // Security
+@@ -1447,7 +2170,6 @@ func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) {
+ // Shmdt
+ // Shmget
+ // Sigaltstack
+-// Signalfd
+ // Swapoff
+ // Swapon
+ // Sysfs
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+index 2b881b97..a8374b67 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
+@@ -10,25 +10,15 @@
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+ 
+ //sysnb	pipe(p *[2]_C_int) (err error)
+@@ -60,9 +50,12 @@ func Pipe2(p []int, flags int) (err error) {
+ // 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)
++//sysnb	EpollCreate(size int) (fd 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_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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+ //sysnb	Getegid() (egid int) = SYS_GETEGID32
+ //sysnb	Geteuid() (euid int) = SYS_GETEUID32
+@@ -75,9 +68,10 @@ func Pipe2(p []int, flags int) (err error) {
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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
++//sys	setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
++//sys	setfsuid(uid int) (prev 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
+@@ -86,12 +80,12 @@ func Pipe2(p []int, flags 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
++//sys	Ustat(dev int, ubuf *Ustat_t) (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	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) {
+@@ -165,10 +159,6 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ 	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 {
+@@ -177,17 +167,17 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 	return newoffset, nil
+ }
+ 
+-// Vsyscalls on amd64.
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+ //sysnb	Time(t *Time_t) (tt Time_t, err error)
+-
+ //sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]Timeval) (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
++// 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
++// and a pointer to an array of uintptr. We hide the pointer in the
+ // socketcall assembly to avoid allocation on every system call.
+ 
+ const (
+@@ -214,9 +204,6 @@ const (
+ 	_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 {
+@@ -385,6 +372,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+index 9516a3fd..8ed1d546 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
+@@ -7,10 +7,12 @@
+ package unix
+ 
+ //sys	Dup2(oldfd int, newfd int) (err error)
++//sysnb	EpollCreate(size int) (fd 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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys	Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys	Ftruncate(fd int, length int64) (err error)
+ //sysnb	Getegid() (egid int)
+@@ -18,20 +20,43 @@ package unix
+ //sysnb	Getgid() (gid int)
+ //sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
+ //sysnb	Getuid() (uid int)
+-//sysnb	InotifyInit() (fd int, err error)
++//sysnb	inotifyInit() (fd int, err error)
++
++func InotifyInit() (fd int, err error) {
++	// First try inotify_init1, because Android's seccomp policy blocks the latter.
++	fd, err = InotifyInit1(0)
++	if err == ENOSYS {
++		fd, err = inotifyInit()
++	}
++	return
++}
++
+ //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)
++
++func Lstat(path string, stat *Stat_t) (err error) {
++	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
++}
++
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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)
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	var ts *Timespec
++	if timeout != nil {
++		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++	}
++	return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -39,10 +64,16 @@ package unix
+ //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)
++
++func Stat(path string, stat *Stat_t) (err error) {
++	// Use fstatat, because Android's seccomp policy blocks stat.
++	return Fstatat(AT_FDCWD, path, stat, 0)
++}
++
+ //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	Ustat(dev int, ubuf *Ustat_t) (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)
+@@ -61,6 +92,8 @@ package unix
+ //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)
+ 
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
++
+ func Gettimeofday(tv *Timeval) (err error) {
+ 	errno := gettimeofday(tv)
+ 	if errno != 0 {
+@@ -69,8 +102,6 @@ func Gettimeofday(tv *Timeval) (err error) {
+ 	return nil
+ }
+ 
+-func Getpagesize() int { return 4096 }
+-
+ func Time(t *Time_t) (tt Time_t, err error) {
+ 	var tv Timeval
+ 	errno := gettimeofday(&tv)
+@@ -84,20 +115,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+ 
+ //sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = nsec % 1e9 / 1e3
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ //sysnb	pipe(p *[2]_C_int) (err error)
+@@ -138,6 +163,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+@@ -150,3 +179,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++	cmdlineLen := len(cmdline)
++	if cmdlineLen > 0 {
++		// Account for the additional NULL byte added by
++		// BytePtrFromString in kexecFileLoad. The kexec_file_load
++		// syscall expects a NULL-terminated string.
++		cmdlineLen++
++	}
++	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+index 71d87022..99ae6137 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
+@@ -11,29 +11,26 @@ import (
+ 	"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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+ 
++//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
++	// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
+ 	err = pipe2(&pp, 0)
++	if err == ENOSYS {
++		err = pipe(&pp)
++	}
+ 	p[0] = int(pp[0])
+ 	p[1] = int(pp[1])
+ 	return
+@@ -84,8 +81,11 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, 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)
++//sysnb	EpollCreate(size int) (fd int, err error)
++//sys	EpollWait(epfd int, events []EpollEvent, msec int) (n 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
++//sys	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sysnb	Getegid() (egid int) = SYS_GETEGID32
+ //sysnb	Geteuid() (euid int) = SYS_GETEUID32
+ //sysnb	Getgid() (gid int) = SYS_GETGID32
+@@ -94,10 +94,12 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, 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	Pause() (err error)
++//sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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
++//sys	setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
++//sys	setfsuid(uid int) (prev 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
+@@ -105,11 +107,10 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, 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 int, err error)
+ //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
++//sys	Ustat(dev int, ubuf *Ustat_t) (err error)
+ 
+-// Vsyscalls on amd64.
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //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
+@@ -131,6 +132,8 @@ func Utime(path string, buf *Utimbuf) error {
+ 	return Utimes(path, tv)
+ }
+ 
++//sys	utimes(path string, times *[2]Timeval) (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	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+@@ -249,6 +252,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+@@ -261,3 +268,24 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys	armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE
++
++func SyncFileRange(fd int, off int64, n int64, flags int) error {
++	// The sync_file_range and arm_sync_file_range syscalls differ only in the
++	// order of their arguments.
++	return armSyncFileRange(fd, flags, off, n)
++}
++
++//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++	cmdlineLen := len(cmdline)
++	if cmdlineLen > 0 {
++		// Account for the additional NULL byte added by
++		// BytePtrFromString in kexecFileLoad. The kexec_file_load
++		// syscall expects a NULL-terminated string.
++		cmdlineLen++
++	}
++	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+index 4a136396..807a0b20 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+@@ -6,7 +6,17 @@
+ 
+ package unix
+ 
++import "unsafe"
++
++func EpollCreate(size int) (fd int, err error) {
++	if size <= 0 {
++		return -1, EINVAL
++	}
++	return EpollCreate1(0)
++}
++
+ //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
++//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	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+@@ -20,11 +30,20 @@ package unix
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	var ts *Timespec
++	if timeout != nil {
++		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++	}
++	return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -48,6 +67,11 @@ func Lstat(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)
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++	return ENOSYS
++}
++
+ //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)
+@@ -66,23 +90,26 @@ func Lstat(path string, stat *Stat_t) (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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
++}
+ 
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+-	ts.Sec = nsec / 1e9
+-	ts.Nsec = nsec % 1e9
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = nsec % 1e9 / 1e3
+-	return
++func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
++	if tv == nil {
++		return utimensat(dirfd, path, nil, 0)
++	}
++
++	ts := []Timespec{
++		NsecToTimespec(TimevalToNsec(tv[0])),
++		NsecToTimespec(TimevalToNsec(tv[1])),
++	}
++	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ }
+ 
+ func Time(t *Time_t) (Time_t, error) {
+@@ -105,6 +132,18 @@ func Utime(path string, buf *Utimbuf) error {
+ 	return Utimes(path, tv)
+ }
+ 
++func utimes(path string, tv *[2]Timeval) (err error) {
++	if tv == nil {
++		return utimensat(AT_FDCWD, path, nil, 0)
++	}
++
++	ts := []Timespec{
++		NsecToTimespec(TimevalToNsec(tv[0])),
++		NsecToTimespec(TimevalToNsec(tv[1])),
++	}
++	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++}
++
+ func Pipe(p []int) (err error) {
+ 	if len(p) != 2 {
+ 		return EINVAL
+@@ -141,6 +180,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+@@ -153,30 +196,11 @@ 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
++func Pause() error {
++	_, err := ppoll(nil, 0, nil, nil)
++	return err
+ }
+ 
+-// 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 {
+@@ -188,3 +212,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	return ppoll(&fds[0], len(fds), ts, nil)
+ }
++
++//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++	cmdlineLen := len(cmdline)
++	if cmdlineLen > 0 {
++		// Account for the additional NULL byte added by
++		// BytePtrFromString in kexecFileLoad. The kexec_file_load
++		// syscall expects a NULL-terminated string.
++		cmdlineLen++
++	}
++	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+new file mode 100644
+index 00000000..c26e6ec2
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc.go
+@@ -0,0 +1,14 @@
++// Copyright 2018 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,!gccgo
++
++package unix
++
++// SyscallNoError may be used instead of Syscall for syscalls that don't fail.
++func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
++
++// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't
++// fail.
++func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+new file mode 100644
+index 00000000..070bd389
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go
+@@ -0,0 +1,16 @@
++// Copyright 2018 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,!gccgo,386
++
++package unix
++
++import "syscall"
++
++// 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 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)
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+new file mode 100644
+index 00000000..308eb7ae
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go
+@@ -0,0 +1,30 @@
++// Copyright 2018 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,gccgo,386
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
++	var newoffset int64
++	offsetLow := uint32(offset & 0xffffffff)
++	offsetHigh := uint32((offset >> 32) & 0xffffffff)
++	_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
++	return newoffset, err
++}
++
++func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
++	fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
++	return int(fd), err
++}
++
++func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
++	fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
++	return int(fd), err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+new file mode 100644
+index 00000000..aa7fc9e1
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go
+@@ -0,0 +1,20 @@
++// Copyright 2018 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,gccgo,arm
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
++	var newoffset int64
++	offsetLow := uint32(offset & 0xffffffff)
++	offsetHigh := uint32((offset >> 32) & 0xffffffff)
++	_, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
++	return newoffset, err
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+index 73318e5c..af77e6e2 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
+@@ -8,7 +8,9 @@
+ package unix
+ 
+ //sys	Dup2(oldfd int, newfd int) (err error)
++//sysnb	EpollCreate(size int) (fd 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	Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys	Ftruncate(fd int, length int64) (err error)
+@@ -22,11 +24,20 @@ package unix
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	var ts *Timespec
++	if timeout != nil {
++		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++	}
++	return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -37,6 +48,7 @@ package unix
+ //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	Ustat(dev int, ubuf *Ustat_t) (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)
+@@ -55,8 +67,7 @@ package unix
+ //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 }
+-
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+ 
+ func Time(t *Time_t) (tt Time_t, err error) {
+@@ -72,20 +83,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+ 
+ //sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = nsec % 1e9 / 1e3
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func Pipe(p []int) (err error) {
+@@ -143,6 +148,7 @@ type stat_t struct {
+ }
+ 
+ //sys	fstat(fd int, st *stat_t) (err error)
++//sys	fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys	lstat(path string, st *stat_t) (err error)
+ //sys	stat(path string, st *stat_t) (err error)
+ 
+@@ -153,6 +159,13 @@ func Fstat(fd int, s *Stat_t) (err error) {
+ 	return
+ }
+ 
++func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) {
++	st := &stat_t{}
++	err = fstatat(dirfd, path, st, flags)
++	fillStat_t(s, st)
++	return
++}
++
+ func Lstat(path string, s *Stat_t) (err error) {
+ 	st := &stat_t{}
+ 	err = lstat(path, st)
+@@ -195,10 +208,18 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+ 
++func InotifyInit() (fd int, err error) {
++	return InotifyInit1(0)
++}
++
+ //sys	poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+ 
+ func Poll(fds []PollFd, timeout int) (n int, err error) {
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+index b83d93fd..e286c6ba 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go
+@@ -15,6 +15,9 @@ import (
+ 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)
++//sysnb	EpollCreate(size int) (fd 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	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+ //sysnb	Getegid() (egid int)
+@@ -25,20 +28,20 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, 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	Ustat(dev int, ubuf *Ustat_t) (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)
+@@ -60,15 +63,17 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr,
+ //sys	Ioperm(from int, num int, on int) (err error)
+ //sys	Iopl(level int) (err error)
+ 
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+ //sysnb	Time(t *Time_t) (tt Time_t, err error)
++//sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]Timeval) (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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //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) {
+@@ -99,19 +104,12 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ 	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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: int32(sec), Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: int32(sec), Usec: int32(usec)}
+ }
+ 
+ //sysnb pipe2(p *[2]_C_int, flags int) (err error)
+@@ -127,14 +125,13 @@ func Pipe2(p []int, flags int) (err error) {
+ 	return
+ }
+ 
++//sysnb pipe() (p1 int, p2 int, err error)
++
+ 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])
++	p[0], p[1], err = pipe()
+ 	return
+ }
+ 
+@@ -223,6 +220,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
+@@ -235,5 +236,3 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	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
+index 60770f62..ca0345aa 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
+@@ -7,10 +7,13 @@
+ 
+ package unix
+ 
+-//sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+ //sys	Dup2(oldfd int, newfd int) (err error)
++//sysnb	EpollCreate(size int) (fd 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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys	Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys	Ftruncate(fd int, length int64) (err error)
+ //sysnb	Getegid() (egid int)
+@@ -27,11 +30,12 @@ package unix
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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	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	Setfsgid(gid int) (err error)
+-//sys	Setfsuid(uid int) (err error)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -41,8 +45,8 @@ package unix
+ //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	Ustat(dev int, ubuf *Ustat_t) (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)
+@@ -61,26 +65,18 @@ package unix
+ //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 }
+-
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+ //sysnb	Time(t *Time_t) (tt Time_t, err error)
+-
+ //sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = nsec % 1e9 / 1e3
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func (r *PtraceRegs) PC() uint64 { return r.Nip }
+@@ -95,6 +91,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+@@ -133,3 +133,24 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys	syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2
++
++func SyncFileRange(fd int, off int64, n int64, flags int) error {
++	// The sync_file_range and sync_file_range2 syscalls differ only in the
++	// order of their arguments.
++	return syncFileRange2(fd, flags, off, n)
++}
++
++//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++	cmdlineLen := len(cmdline)
++	if cmdlineLen > 0 {
++		// Account for the additional NULL byte added by
++		// BytePtrFromString in kexecFileLoad. The kexec_file_load
++		// syscall expects a NULL-terminated string.
++		cmdlineLen++
++	}
++	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+similarity index 68%
+copy from vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
+copy to vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+index 4a136396..abdabbac 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
+@@ -1,12 +1,22 @@
+-// Copyright 2015 The Go Authors. All rights reserved.
++// Copyright 2018 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
++// +build riscv64,linux
+ 
+ package unix
+ 
++import "unsafe"
++
++func EpollCreate(size int) (fd int, err error) {
++	if size <= 0 {
++		return -1, EINVAL
++	}
++	return EpollCreate1(0)
++}
++
+ //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
++//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	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+@@ -21,10 +31,18 @@ package unix
+ //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
++
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	var ts *Timespec
++	if timeout != nil {
++		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000}
++	}
++	return Pselect(nfd, r, w, e, ts, nil)
++}
++
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -48,6 +66,11 @@ func Lstat(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)
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++	return ENOSYS
++}
++
+ //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)
+@@ -66,23 +89,26 @@ func Lstat(path string, stat *Stat_t) (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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
++}
+ 
+-func NsecToTimespec(nsec int64) (ts Timespec) {
+-	ts.Sec = nsec / 1e9
+-	ts.Nsec = nsec % 1e9
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = nsec % 1e9 / 1e3
+-	return
++func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) {
++	if tv == nil {
++		return utimensat(dirfd, path, nil, 0)
++	}
++
++	ts := []Timespec{
++		NsecToTimespec(TimevalToNsec(tv[0])),
++		NsecToTimespec(TimevalToNsec(tv[1])),
++	}
++	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ }
+ 
+ func Time(t *Time_t) (Time_t, error) {
+@@ -105,6 +131,18 @@ func Utime(path string, buf *Utimbuf) error {
+ 	return Utimes(path, tv)
+ }
+ 
++func utimes(path string, tv *[2]Timeval) (err error) {
++	if tv == nil {
++		return utimensat(AT_FDCWD, path, nil, 0)
++	}
++
++	ts := []Timespec{
++		NsecToTimespec(TimevalToNsec(tv[0])),
++		NsecToTimespec(TimevalToNsec(tv[1])),
++	}
++	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
++}
++
+ func Pipe(p []int) (err error) {
+ 	if len(p) != 2 {
+ 		return EINVAL
+@@ -141,6 +179,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+@@ -153,30 +195,11 @@ 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
++func Pause() error {
++	_, err := ppoll(nil, 0, nil, nil)
++	return err
+ }
+ 
+-// 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 {
+@@ -188,3 +211,20 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	return ppoll(&fds[0], len(fds), ts, nil)
+ }
++
++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
++	return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
++}
++
++//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++	cmdlineLen := len(cmdline)
++	if cmdlineLen > 0 {
++		// Account for the additional NULL byte added by
++		// BytePtrFromString in kexecFileLoad. The kexec_file_load
++		// syscall expects a NULL-terminated string.
++		cmdlineLen++
++	}
++	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+index 1708a4bb..533e9305 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
+@@ -11,10 +11,12 @@ import (
+ )
+ 
+ //sys	Dup2(oldfd int, newfd int) (err error)
++//sysnb	EpollCreate(size int) (fd 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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+ //sys	Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys	Ftruncate(fd int, length int64) (err error)
+ //sysnb	Getegid() (egid int)
+@@ -28,11 +30,12 @@ import (
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -43,11 +46,11 @@ import (
+ //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	Ustat(dev int, ubuf *Ustat_t) (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 }
+-
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+ 
+ func Time(t *Time_t) (tt Time_t, err error) {
+@@ -63,20 +66,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+ 
+ //sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = nsec % 1e9 / 1e3
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ //sysnb pipe2(p *[2]_C_int, flags int) (err error)
+@@ -123,6 +120,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+@@ -326,3 +327,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
+ 	}
+ 	return poll(&fds[0], len(fds), timeout)
+ }
++
++//sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
++
++func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
++	cmdlineLen := len(cmdline)
++	if cmdlineLen > 0 {
++		// Account for the additional NULL byte added by
++		// BytePtrFromString in kexecFileLoad. The kexec_file_load
++		// syscall expects a NULL-terminated string.
++		cmdlineLen++
++	}
++	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+index 20b7454d..d890a227 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
+@@ -6,15 +6,12 @@
+ 
+ package unix
+ 
+-import (
+-	"sync/atomic"
+-	"syscall"
+-)
+-
+ //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	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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64
+ //sys	Fstatfs(fd int, buf *Statfs_t) (err error)
+ //sys	Ftruncate(fd int, length int64) (err error)
+ //sysnb	Getegid() (egid int)
+@@ -29,11 +26,12 @@ import (
+ //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	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+ //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)
++//sys	setfsgid(gid int) (prev int, err error)
++//sys	setfsuid(uid int) (prev 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)
+@@ -63,21 +61,6 @@ import (
+ //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
+ }
+@@ -86,6 +69,7 @@ func Iopl(level int) (err error) {
+ 	return ENOSYS
+ }
+ 
++//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+ 
+ func Time(t *Time_t) (tt Time_t, err error) {
+@@ -101,20 +85,14 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ }
+ 
+ //sys	Utime(path string, buf *Utimbuf) (err error)
++//sys	utimes(path string, times *[2]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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Sec = nsec / 1e9
+-	tv.Usec = int32(nsec % 1e9 / 1e3)
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func (r *PtraceRegs) PC() uint64 { return r.Tpc }
+@@ -129,6 +107,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint64(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint64(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint64(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
+index e1296684..45b50a61 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
+@@ -13,10 +13,12 @@
+ package unix
+ 
+ import (
++	"runtime"
+ 	"syscall"
+ 	"unsafe"
+ )
+ 
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -55,7 +57,6 @@ func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) {
+ }
+ 
+ func nametomib(name string) (mib []_C_int, err error) {
+-
+ 	// Split name into components.
+ 	var parts []string
+ 	last := 0
+@@ -114,9 +115,47 @@ func Pipe(p []int) (err error) {
+ 	return
+ }
+ 
+-//sys getdents(fd int, buf []byte) (n int, err error)
++//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)
++	n, err = Getdents(fd, buf)
++	if err != nil || basep == nil {
++		return
++	}
++
++	var off int64
++	off, err = Seek(fd, 0, 1 /* SEEK_CUR */)
++	if err != nil {
++		*basep = ^uintptr(0)
++		return
++	}
++	*basep = uintptr(off)
++	if unsafe.Sizeof(*basep) == 8 {
++		return
++	}
++	if off>>32 != 0 {
++		// We can't stuff the offset back into a uintptr, so any
++		// future calls would be suspect. Generate an error.
++		// EIO is allowed by getdirentries.
++		err = EIO
++	}
++	return
++}
++
++const ImplementsGetwd = true
++
++//sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++	var buf [PathMax]byte
++	_, err := Getcwd(buf[0:])
++	if err != nil {
++		return "", err
++	}
++	n := clen(buf[:])
++	if n < 1 {
++		return "", EINVAL
++	}
++	return string(buf[:n]), nil
+ }
+ 
+ // TODO
+@@ -124,6 +163,83 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 	return -1, ENOSYS
+ }
+ 
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++	// used on Darwin for UtimesNano
++	return ENOSYS
++}
++
++//sys	ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) {
++	var value Ptmget
++	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
++	runtime.KeepAlive(value)
++	return &value, err
++}
++
++func Uname(uname *Utsname) error {
++	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++	n := unsafe.Sizeof(uname.Sysname)
++	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++	n = unsafe.Sizeof(uname.Nodename)
++	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++	n = unsafe.Sizeof(uname.Release)
++	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	mib = []_C_int{CTL_KERN, KERN_VERSION}
++	n = unsafe.Sizeof(uname.Version)
++	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	// The version might have newlines or tabs in it, convert them to
++	// spaces.
++	for i, b := range uname.Version {
++		if b == '\n' || b == '\t' {
++			if i == len(uname.Version)-1 {
++				uname.Version[i] = 0
++			} else {
++				uname.Version[i] = ' '
++			}
++		}
++	}
++
++	mib = []_C_int{CTL_HW, HW_MACHINE}
++	n = unsafe.Sizeof(uname.Machine)
++	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	return nil
++}
++
++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)
++}
++
++func Fstatvfs(fd int, buf *Statvfs_t) (err error) {
++	return Fstatvfs1(fd, buf, ST_WAIT)
++}
++
++func Statvfs(path string, buf *Statvfs_t) (err error) {
++	return Statvfs1(path, buf, ST_WAIT)
++}
++
+ /*
+  * Exposed directly
+  */
+@@ -137,14 +253,33 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ //sys	Close(fd int) (err error)
+ //sys	Dup(fd int) (nfd int, err error)
+ //sys	Dup2(from int, to int) (err error)
++//sys	Dup3(from int, to int, flags 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	Faccessat(dirfd int, path string, mode uint32, flags 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	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	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	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
++//sys	Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1
+ //sys	Fsync(fd int) (err error)
+ //sys	Ftruncate(fd int, length int64) (err error)
+ //sysnb	Getegid() (egid int)
+@@ -165,23 +300,30 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ //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	Linkat(pathfd int, path string, linkfd int, link string, flags int) (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	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	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, 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	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
+ //sys	Rename(from string, to string) (err error)
++//sys	Renameat(fromfd int, from string, tofd int, 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	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb	Setegid(egid int) (err error)
+ //sysnb	Seteuid(euid int) (err error)
+ //sysnb	Setgid(gid int) (err error)
+@@ -194,11 +336,14 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ //sysnb	Settimeofday(tp *Timeval) (err error)
+ //sysnb	Setuid(uid int) (err error)
+ //sys	Stat(path string, stat *Stat_t) (err error)
++//sys	Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1
+ //sys	Symlink(path string, link string) (err error)
++//sys	Symlinkat(oldpath string, newdirfd int, newpath 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	Unlinkat(dirfd int, path string, flags int) (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)
+@@ -225,7 +370,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ // __msync13
+ // __ntp_gettime30
+ // __posix_chown
+-// __posix_fadvise50
+ // __posix_fchown
+ // __posix_lchown
+ // __posix_rename
+@@ -384,7 +528,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ // getitimer
+ // getvfsstat
+ // getxattr
+-// ioctl
+ // ktrace
+ // lchflags
+ // lchmod
+@@ -422,7 +565,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ // ntp_adjtime
+ // pmc_control
+ // pmc_get_info
+-// poll
+ // pollts
+ // preadv
+ // profil
+diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+index afaca098..24da8b52 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
+@@ -6,21 +6,12 @@
+ 
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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
+index a6ff04ce..25a0ac82 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+@@ -6,21 +6,12 @@
+ 
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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
+index 68a6969b..21591ecd 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
+@@ -6,21 +6,12 @@
+ 
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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_arm64.go
+similarity index 50%
+copy from vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+index a6ff04ce..80474963 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go
+@@ -1,26 +1,17 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
++// Copyright 2019 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
++// +build arm64,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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,10 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(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
+deleted file mode 100644
+index 530792ea..00000000
+--- a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go
++++ /dev/null
+@@ -1,11 +0,0 @@
+-// 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
+index 408e6308..a266e92a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
+@@ -13,10 +13,12 @@
+ package unix
+ 
+ import (
++	"sort"
+ 	"syscall"
+ 	"unsafe"
+ )
+ 
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -32,23 +34,11 @@ type SockaddrDatalink struct {
+ 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
+-		}
++	i := sort.Search(len(sysctlMib), func(i int) bool {
++		return sysctlMib[i].ctlname >= name
++	})
++	if i < len(sysctlMib) && sysctlMib[i].ctlname == name {
++		return sysctlMib[i].ctloid, nil
+ 	}
+ 	return nil, EINVAL
+ }
+@@ -65,21 +55,87 @@ 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 SysctlUvmexp(name string) (*Uvmexp, error) {
++	mib, err := sysctlmib(name)
++	if err != nil {
++		return nil, err
++	}
++
++	n := uintptr(SizeofUvmexp)
++	var u Uvmexp
++	if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil {
++		return nil, err
++	}
++	if n != SizeofUvmexp {
++		return nil, EIO
++	}
++	return &u, nil
++}
++
+ func Pipe(p []int) (err error) {
++	return Pipe2(p, 0)
++}
++
++//sysnb	pipe2(p *[2]_C_int, flags int) (err error)
++func Pipe2(p []int, flags int) error {
+ 	if len(p) != 2 {
+ 		return EINVAL
+ 	}
+ 	var pp [2]_C_int
+-	err = pipe(&pp)
++	err := pipe2(&pp, flags)
+ 	p[0] = int(pp[0])
+ 	p[1] = int(pp[1])
+-	return
++	return err
+ }
+ 
+-//sys getdents(fd int, buf []byte) (n int, err error)
++//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)
++	n, err = Getdents(fd, buf)
++	if err != nil || basep == nil {
++		return
++	}
++
++	var off int64
++	off, err = Seek(fd, 0, 1 /* SEEK_CUR */)
++	if err != nil {
++		*basep = ^uintptr(0)
++		return
++	}
++	*basep = uintptr(off)
++	if unsafe.Sizeof(*basep) == 8 {
++		return
++	}
++	if off>>32 != 0 {
++		// We can't stuff the offset back into a uintptr, so any
++		// future calls would be suspect. Generate an error.
++		// EIO was allowed by getdirentries.
++		err = EIO
++	}
++	return
++}
++
++const ImplementsGetwd = true
++
++//sys	Getcwd(buf []byte) (n int, err error) = SYS___GETCWD
++
++func Getwd() (string, error) {
++	var buf [PathMax]byte
++	_, err := Getcwd(buf[0:])
++	if err != nil {
++		return "", err
++	}
++	n := clen(buf[:])
++	if n < 1 {
++		return "", EINVAL
++	}
++	return string(buf[:n]), nil
++}
++
++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)
+ }
+ 
+ // TODO
+@@ -102,6 +158,70 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func setattrlistTimes(path string, times []Timespec, flags int) error {
++	// used on Darwin for UtimesNano
++	return ENOSYS
++}
++
++//sys	ioctl(fd int, req uint, arg uintptr) (err error)
++
++//sys   sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
++
++//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)
++}
++
++func Uname(uname *Utsname) error {
++	mib := []_C_int{CTL_KERN, KERN_OSTYPE}
++	n := unsafe.Sizeof(uname.Sysname)
++	if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	mib = []_C_int{CTL_KERN, KERN_HOSTNAME}
++	n = unsafe.Sizeof(uname.Nodename)
++	if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	mib = []_C_int{CTL_KERN, KERN_OSRELEASE}
++	n = unsafe.Sizeof(uname.Release)
++	if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	mib = []_C_int{CTL_KERN, KERN_VERSION}
++	n = unsafe.Sizeof(uname.Version)
++	if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	// The version might have newlines or tabs in it, convert them to
++	// spaces.
++	for i, b := range uname.Version {
++		if b == '\n' || b == '\t' {
++			if i == len(uname.Version)-1 {
++				uname.Version[i] = 0
++			} else {
++				uname.Version[i] = ' '
++			}
++		}
++	}
++
++	mib = []_C_int{CTL_HW, HW_MACHINE}
++	n = unsafe.Sizeof(uname.Machine)
++	if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil {
++		return err
++	}
++
++	return nil
++}
++
+ /*
+  * Exposed directly
+  */
+@@ -115,14 +235,19 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, 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	Dup3(from int, to int, flags int) (err error)
+ //sys	Exit(code int)
++//sys	Faccessat(dirfd int, path string, mode uint32, flags int) (err error)
+ //sys	Fchdir(fd int) (err error)
+ //sys	Fchflags(fd int, flags 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	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	Fstatat(fd int, path string, stat *Stat_t, flags int) (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)
+@@ -135,6 +260,7 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ //sysnb	Getppid() (ppid int)
+ //sys	Getpriority(which int, who int) (prio int, err error)
+ //sysnb	Getrlimit(which int, lim *Rlimit) (err error)
++//sysnb	Getrtable() (rtable int, err error)
+ //sysnb	Getrusage(who int, rusage *Rusage) (err error)
+ //sysnb	Getsid(pid int) (sid int, err error)
+ //sysnb	Gettimeofday(tv *Timeval) (err error)
+@@ -144,23 +270,30 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, 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	Linkat(pathfd int, path string, linkfd int, link string, flags int) (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	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	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, 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	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
+ //sys	Rename(from string, to string) (err error)
++//sys	Renameat(fromfd int, from string, tofd int, 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	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb	Setegid(egid int) (err error)
+ //sysnb	Seteuid(euid int) (err error)
+ //sysnb	Setgid(gid int) (err error)
+@@ -172,16 +305,19 @@ func Getfsstat(buf []Statfs_t, flags int) (n 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	Setrtable(rtable int) (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	Symlinkat(oldpath string, newdirfd int, newpath 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	Unlinkat(dirfd int, path string, flags int) (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)
+@@ -204,15 +340,10 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // clock_settime
+ // closefrom
+ // execve
+-// faccessat
+-// fchmodat
+-// fchownat
+-// fcntl
+ // fhopen
+ // fhstat
+ // fhstatfs
+ // fork
+-// fstatat
+ // futimens
+ // getfh
+ // getgid
+@@ -220,20 +351,14 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // getlogin
+ // getresgid
+ // getresuid
+-// getrtable
+ // getthrid
+-// ioctl
+ // ktrace
+ // lfs_bmapv
+ // lfs_markv
+ // lfs_segclean
+ // lfs_segwait
+-// linkat
+ // mincore
+ // minherit
+-// mkdirat
+-// mkfifoat
+-// mknodat
+ // mount
+ // mquery
+ // msgctl
+@@ -242,13 +367,10 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // msgsnd
+ // nfssvc
+ // nnpfspioctl
+-// openat
+-// poll
+ // preadv
+ // profil
+ // pwritev
+ // quotactl
+-// readlinkat
+ // readv
+ // reboot
+ // renameat
+@@ -258,7 +380,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // semop
+ // setgroups
+ // setitimer
+-// setrtable
+ // setsockopt
+ // shmat
+ // shmctl
+@@ -270,13 +391,11 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
+ // sigprocmask
+ // sigreturn
+ // sigsuspend
+-// symlinkat
+ // sysarch
+ // syscall
+ // threxit
+ // thrsigdivert
+ // thrsleep
+ // thrwakeup
+-// unlinkat
+ // 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
+index a66ddc59..42b5a0e5 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
+@@ -6,21 +6,12 @@
+ 
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,14 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/386 the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+index 0776c1fa..6ea4b488 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
+@@ -6,21 +6,12 @@
+ 
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Usec = nsec % 1e9 / 1e3
+-	tv.Sec = nsec / 1e9
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -37,6 +28,14 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+index 14ddaf3f..1c3d26fa 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go
+@@ -6,23 +6,12 @@
+ 
+ package unix
+ 
+-import "syscall"
+-
+-func Getpagesize() int { return syscall.Getpagesize() }
+-
+-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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: int32(nsec)}
+ }
+ 
+-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 setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: int32(usec)}
+ }
+ 
+ func SetKevent(k *Kevent_t, fd, mode, flags int) {
+@@ -39,6 +28,14 @@ func (msghdr *Msghdr) SetControllen(length int) {
+ 	msghdr.Controllen = uint32(length)
+ }
+ 
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
+ func (cmsg *Cmsghdr) SetLen(length int) {
+ 	cmsg.Len = uint32(length)
+ }
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/arm the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+new file mode 100644
+index 00000000..a8c458cb
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go
+@@ -0,0 +1,41 @@
++// Copyright 2019 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,openbsd
++
++package unix
++
++func setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
++}
++
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
++}
++
++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 (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = uint32(length)
++}
++
++func (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
++}
++
++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
++// of openbsd/amd64 the syscall is called sysctl instead of __sysctl.
++const SYS___SYSCTL = SYS_SYSCTL
+diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go
+index 0d4e5c4e..0e2a696a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_solaris.go
++++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go
+@@ -13,7 +13,6 @@
+ package unix
+ 
+ import (
+-	"sync/atomic"
+ 	"syscall"
+ 	"unsafe"
+ )
+@@ -24,6 +23,7 @@ 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)
+ 
++// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets.
+ type SockaddrDatalink struct {
+ 	Family uint16
+ 	Index  uint16
+@@ -35,15 +35,6 @@ type SockaddrDatalink struct {
+ 	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))
+ }
+@@ -137,7 +128,19 @@ func Getsockname(fd int) (sa Sockaddr, err error) {
+ 	if err = getsockname(fd, &rsa, &len); err != nil {
+ 		return
+ 	}
+-	return anyToSockaddr(&rsa)
++	return anyToSockaddr(fd, &rsa)
++}
++
++// GetsockoptString returns the string value of the socket option opt for the
++// socket associated with fd at the given socket level.
++func GetsockoptString(fd, level, opt int) (string, error) {
++	buf := make([]byte, 256)
++	vallen := _Socklen(len(buf))
++	err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen)
++	if err != nil {
++		return "", err
++	}
++	return string(buf[:vallen-1]), nil
+ }
+ 
+ const ImplementsGetwd = true
+@@ -167,7 +170,7 @@ func Getwd() (wd string, err error) {
+ 
+ func Getgroups() (gids []int, err error) {
+ 	n, err := getgroups(0, nil)
+-	// Check for error and sanity check group count.  Newer versions of
++	// 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 {
+@@ -202,6 +205,7 @@ func Setgroups(gids []int) (err error) {
+ 	return setgroups(len(a), &a[0])
+ }
+ 
++// ReadDirent reads directory entries from fd and writes them into buf.
+ 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?
+@@ -325,6 +329,16 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ 
+ //sys	fcntl(fd int, cmd int, arg int) (val int, err error)
+ 
++// FcntlInt performs a fcntl syscall on fd with the provided command and argument.
++func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
++	valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)
++	var err error
++	if errno != 0 {
++		err = errno
++	}
++	return int(valptr), err
++}
++
+ // 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)
+@@ -351,7 +365,7 @@ func Futimesat(dirfd int, path string, tv []Timeval) error {
+ }
+ 
+ // Solaris doesn't have an futimes function because it allows NULL to be
+-// specified as the path for futimesat.  However, Go doesn't like
++// 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 {
+@@ -363,7 +377,7 @@ func Futimes(fd int, tv []Timeval) error {
+ 	return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+ }
+ 
+-func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
++func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) {
+ 	switch rsa.Addr.Family {
+ 	case AF_UNIX:
+ 		pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
+@@ -377,7 +391,7 @@ func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ 		for n < len(pp.Path) && pp.Path[n] != 0 {
+ 			n++
+ 		}
+-		bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
++		bytes := (*[len(pp.Path)]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+ 		sa.Name = string(bytes)
+ 		return sa, nil
+ 
+@@ -414,7 +428,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ 	if nfd == -1 {
+ 		return
+ 	}
+-	sa, err = anyToSockaddr(&rsa)
++	sa, err = anyToSockaddr(fd, &rsa)
+ 	if err != nil {
+ 		Close(nfd)
+ 		nfd = 0
+@@ -451,7 +465,7 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from
+ 	oobn = int(msg.Accrightslen)
+ 	// source address is only specified if the socket is unconnected
+ 	if rsa.Addr.Family != AF_UNSPEC {
+-		from, err = anyToSockaddr(&rsa)
++		from, err = anyToSockaddr(fd, &rsa)
+ 	}
+ 	return
+ }
+@@ -515,50 +529,54 @@ func Acct(path string) (err error) {
+ 	return acct(pathp)
+ }
+ 
+-/*
+- * Expose the ioctl function
+- */
++//sys	__makedev(version int, major uint, minor uint) (val uint64)
+ 
+-//sys	ioctl(fd int, req uint, arg uintptr) (err error)
+-
+-func IoctlSetInt(fd int, req uint, value int) (err error) {
+-	return ioctl(fd, req, uintptr(value))
++func Mkdev(major, minor uint32) uint64 {
++	return __makedev(NEWDEV, uint(major), uint(minor))
+ }
+ 
+-func IoctlSetWinsize(fd int, req uint, value *Winsize) (err error) {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++//sys	__major(version int, dev uint64) (val uint)
++
++func Major(dev uint64) uint32 {
++	return uint32(__major(NEWDEV, dev))
+ }
+ 
+-func IoctlSetTermios(fd int, req uint, value *Termios) (err error) {
+-	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
++//sys	__minor(version int, dev uint64) (val uint)
++
++func Minor(dev uint64) uint32 {
++	return uint32(__minor(NEWDEV, dev))
+ }
+ 
++/*
++ * Expose the ioctl function
++ */
++
++//sys	ioctl(fd int, req uint, arg uintptr) (err error)
++
+ func IoctlSetTermio(fd int, req uint, value *Termio) (err error) {
+ 	return ioctl(fd, req, uintptr(unsafe.Pointer(value)))
+ }
+ 
+-func IoctlGetInt(fd int, req uint) (int, error) {
+-	var value int
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return value, err
+-}
+-
+-func IoctlGetWinsize(fd int, req uint) (*Winsize, error) {
+-	var value Winsize
++func IoctlGetTermio(fd int, req uint) (*Termio, error) {
++	var value Termio
+ 	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+ 	return &value, err
+ }
+ 
+-func IoctlGetTermios(fd int, req uint) (*Termios, error) {
+-	var value Termios
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
++//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 IoctlGetTermio(fd int, req uint) (*Termio, error) {
+-	var value Termio
+-	err := ioctl(fd, req, uintptr(unsafe.Pointer(&value)))
+-	return &value, err
++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)
+ }
+ 
+ /*
+@@ -575,15 +593,17 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys	Dup(fd int) (nfd int, err error)
+ //sys	Dup2(oldfd int, newfd int) (err error)
+ //sys	Exit(code int)
++//sys	Faccessat(dirfd int, path string, mode uint32, flags int) (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	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 Flock(fd int, how 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	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+ //sys	Fstatvfs(fd int, vfsstat *Statvfs_t) (err error)
+ //sys	Getdents(fd int, buf []byte, basep *uintptr) (n int, err error)
+ //sysnb	Getgid() (gid int)
+@@ -613,6 +633,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys	Mlock(b []byte) (err error)
+ //sys	Mlockall(flags int) (err error)
+ //sys	Mprotect(b []byte, prot int) (err error)
++//sys	Msync(b []byte, flags int) (err error)
+ //sys	Munlock(b []byte) (err error)
+ //sys	Munlockall() (err error)
+ //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error)
+@@ -628,6 +649,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, 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
++//sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+ //sysnb	Setegid(egid int) (err error)
+ //sysnb	Seteuid(euid int) (err error)
+ //sysnb	Setgid(gid int) (err error)
+@@ -659,6 +681,7 @@ func IoctlGetTermio(fd int, req uint) (*Termio, error) {
+ //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_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	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile
+ //sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto
+ //sys	socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket
+ //sysnb	socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair
+@@ -699,18 +722,3 @@ func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, e
+ 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
+index 5aff62c3..b22a34d7 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
+@@ -6,30 +6,22 @@
+ 
+ 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 setTimespec(sec, nsec int64) Timespec {
++	return Timespec{Sec: sec, Nsec: nsec}
+ }
+ 
+-func NsecToTimeval(nsec int64) (tv Timeval) {
+-	nsec += 999 // round up to microsecond
+-	tv.Usec = nsec % 1e9 / 1e3
+-	tv.Sec = int64(nsec / 1e9)
+-	return
++func setTimeval(sec, usec int64) Timeval {
++	return Timeval{Sec: sec, Usec: usec}
+ }
+ 
+ func (iov *Iovec) SetLen(length int) {
+ 	iov.Len = uint64(length)
+ }
+ 
+-func (cmsg *Cmsghdr) SetLen(length int) {
+-	cmsg.Len = uint32(length)
++func (msghdr *Msghdr) SetIovlen(length int) {
++	msghdr.Iovlen = int32(length)
+ }
+ 
+-func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+-	// TODO(aram): implement this, see issue 5847.
+-	panic("unimplemented")
++func (cmsg *Cmsghdr) SetLen(length int) {
++	cmsg.Len = uint32(length)
+ }
+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go
+index 3ed8a91f..8f710d01 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_unix.go
++++ b/vendor/golang.org/x/sys/unix/syscall_unix.go
+@@ -2,12 +2,13 @@
+ // 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
+ 
+ package unix
+ 
+ import (
+-	"runtime"
++	"bytes"
++	"sort"
+ 	"sync"
+ 	"syscall"
+ 	"unsafe"
+@@ -19,13 +20,6 @@ var (
+ 	Stderr = 2
+ )
+ 
+-const (
+-	darwin64Bit    = runtime.GOOS == "darwin" && sizeofPtr == 8
+-	dragonfly64Bit = runtime.GOOS == "dragonfly" && sizeofPtr == 8
+-	netbsd32Bit    = runtime.GOOS == "netbsd" && sizeofPtr == 4
+-	solaris64Bit   = runtime.GOOS == "solaris" && sizeofPtr == 8
+-)
+-
+ // Do the interface allocations only once for common
+ // Errno values.
+ var (
+@@ -34,6 +28,11 @@ var (
+ 	errENOENT error = syscall.ENOENT
+ )
+ 
++var (
++	signalNameMapOnce sync.Once
++	signalNameMap     map[string]syscall.Signal
++)
++
+ // errnoErr returns common boxed Errno values, to prevent
+ // allocations at runtime.
+ func errnoErr(e syscall.Errno) error {
+@@ -50,6 +49,50 @@ func errnoErr(e syscall.Errno) error {
+ 	return e
+ }
+ 
++// ErrnoName returns the error name for error number e.
++func ErrnoName(e syscall.Errno) string {
++	i := sort.Search(len(errorList), func(i int) bool {
++		return errorList[i].num >= e
++	})
++	if i < len(errorList) && errorList[i].num == e {
++		return errorList[i].name
++	}
++	return ""
++}
++
++// SignalName returns the signal name for signal number s.
++func SignalName(s syscall.Signal) string {
++	i := sort.Search(len(signalList), func(i int) bool {
++		return signalList[i].num >= s
++	})
++	if i < len(signalList) && signalList[i].num == s {
++		return signalList[i].name
++	}
++	return ""
++}
++
++// SignalNum returns the syscall.Signal for signal named s,
++// or 0 if a signal with such name is not found.
++// The signal name should start with "SIG".
++func SignalNum(s string) syscall.Signal {
++	signalNameMapOnce.Do(func() {
++		signalNameMap = make(map[string]syscall.Signal, len(signalList))
++		for _, signal := range signalList {
++			signalNameMap[signal.name] = signal.num
++		}
++	})
++	return signalNameMap[s]
++}
++
++// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.
++func clen(n []byte) int {
++	i := bytes.IndexByte(n, 0)
++	if i == -1 {
++		i = len(n)
++	}
++	return i
++}
++
+ // Mmap manager, for use by operating system-specific implementations.
+ 
+ type mmapper struct {
+@@ -138,16 +181,19 @@ func Write(fd int, p []byte) (n int, err error) {
+ // creation of IPv6 sockets to return EAFNOSUPPORT.
+ var SocketDisableIPv6 bool
+ 
++// Sockaddr represents a socket address.
+ type Sockaddr interface {
+ 	sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs
+ }
+ 
++// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets.
+ type SockaddrInet4 struct {
+ 	Port int
+ 	Addr [4]byte
+ 	raw  RawSockaddrInet4
+ }
+ 
++// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets.
+ type SockaddrInet6 struct {
+ 	Port   int
+ 	ZoneId uint32
+@@ -155,6 +201,7 @@ type SockaddrInet6 struct {
+ 	raw    RawSockaddrInet6
+ }
+ 
++// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets.
+ type SockaddrUnix struct {
+ 	Name string
+ 	raw  RawSockaddrUnix
+@@ -182,7 +229,14 @@ func Getpeername(fd int) (sa Sockaddr, err error) {
+ 	if err = getpeername(fd, &rsa, &len); err != nil {
+ 		return
+ 	}
+-	return anyToSockaddr(&rsa)
++	return anyToSockaddr(fd, &rsa)
++}
++
++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 GetsockoptInt(fd, level, opt int) (value int, err error) {
+@@ -192,6 +246,61 @@ func GetsockoptInt(fd, level, opt int) (value int, err error) {
+ 	return int(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
++}
++
++func GetsockoptLinger(fd, level, opt int) (*Linger, error) {
++	var linger Linger
++	vallen := _Socklen(SizeofLinger)
++	err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen)
++	return &linger, err
++}
++
++func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {
++	var tv Timeval
++	vallen := _Socklen(unsafe.Sizeof(tv))
++	err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen)
++	return &tv, err
++}
++
++func GetsockoptUint64(fd, level, opt int) (value uint64, err error) {
++	var n uint64
++	vallen := _Socklen(8)
++	err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
++	return n, err
++}
++
+ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
+ 	var rsa RawSockaddrAny
+ 	var len _Socklen = SizeofSockaddrAny
+@@ -199,7 +308,7 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
+ 		return
+ 	}
+ 	if rsa.Addr.Family != AF_UNSPEC {
+-		from, err = anyToSockaddr(&rsa)
++		from, err = anyToSockaddr(fd, &rsa)
+ 	}
+ 	return
+ }
+@@ -242,13 +351,21 @@ func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {
+ }
+ 
+ func SetsockoptString(fd, level, opt int, s string) (err error) {
+-	return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s)))
++	var p unsafe.Pointer
++	if len(s) > 0 {
++		p = unsafe.Pointer(&[]byte(s)[0])
++	}
++	return setsockopt(fd, level, opt, p, 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 SetsockoptUint64(fd, level, opt int, value uint64) (err error) {
++	return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)
++}
++
+ func Socket(domain, typ, proto int) (fd int, err error) {
+ 	if domain == AF_INET6 && SocketDisableIPv6 {
+ 		return -1, EAFNOSUPPORT
+@@ -267,13 +384,6 @@ func Socketpair(domain, typ, proto int) (fd [2]int, err error) {
+ 	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) }
+@@ -291,3 +401,31 @@ func SetNonblock(fd int, nonblocking bool) (err error) {
+ 	_, err = fcntl(fd, F_SETFL, flag)
+ 	return err
+ }
++
++// Exec calls execve(2), which replaces the calling executable in the process
++// tree. argv0 should be the full path to an executable ("/bin/ls") and the
++// executable name should also be the first argument in argv (["ls", "-l"]).
++// envv are the environment variables that should be passed to the new
++// process (["USER=go", "PWD=/tmp"]).
++func Exec(argv0 string, argv []string, envv []string) error {
++	return syscall.Exec(argv0, argv, envv)
++}
++
++// Lutimes sets the access and modification times tv on path. If path refers to
++// a symlink, it is not dereferenced and the timestamps are set on the symlink.
++// If tv is nil, the access and modification times are set to the current time.
++// Otherwise tv must contain exactly 2 elements, with access time as the first
++// element and modification time as the second element.
++func Lutimes(path string, tv []Timeval) error {
++	if tv == nil {
++		return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)
++	}
++	if len(tv) != 2 {
++		return EINVAL
++	}
++	ts := []Timespec{
++		NsecToTimespec(TimevalToNsec(tv[0])),
++		NsecToTimespec(TimevalToNsec(tv[1])),
++	}
++	return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)
++}
+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+index 4cb8e8ed..1c70d1b6 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
++++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+@@ -3,7 +3,7 @@
+ // license that can be found in the LICENSE file.
+ 
+ // +build darwin dragonfly freebsd linux netbsd openbsd solaris
+-// +build !gccgo
++// +build !gccgo,!ppc64le,!ppc64
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+similarity index 51%
+copy from vendor/golang.org/x/sys/unix/syscall_unix_gc.go
+copy to vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+index 4cb8e8ed..86dc765a 100644
+--- a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go
++++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go
+@@ -1,15 +1,24 @@
+-// Copyright 2016 The Go Authors. All rights reserved.
++// Copyright 2018 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 linux
++// +build ppc64le ppc64
+ // +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)
++func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++	return syscall.Syscall(trap, a1, a2, a3)
++}
++func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++	return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)
++}
++func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++	return syscall.RawSyscall(trap, a1, a2, a3)
++}
++func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
++	return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)
++}
+diff --git a/vendor/golang.org/x/sys/unix/timestruct.go b/vendor/golang.org/x/sys/unix/timestruct.go
+new file mode 100644
+index 00000000..4a672f56
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/timestruct.go
+@@ -0,0 +1,82 @@
++// Copyright 2017 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
++
++package unix
++
++import "time"
++
++// TimespecToNsec converts a Timespec value into a number of
++// nanoseconds since the Unix epoch.
++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
++
++// NsecToTimespec takes a number of nanoseconds since the Unix epoch
++// and returns the corresponding Timespec value.
++func NsecToTimespec(nsec int64) Timespec {
++	sec := nsec / 1e9
++	nsec = nsec % 1e9
++	if nsec < 0 {
++		nsec += 1e9
++		sec--
++	}
++	return setTimespec(sec, nsec)
++}
++
++// TimeToTimespec converts t into a Timespec.
++// On some 32-bit systems the range of valid Timespec values are smaller
++// than that of time.Time values.  So if t is out of the valid range of
++// Timespec, it returns a zero Timespec and ERANGE.
++func TimeToTimespec(t time.Time) (Timespec, error) {
++	sec := t.Unix()
++	nsec := int64(t.Nanosecond())
++	ts := setTimespec(sec, nsec)
++
++	// Currently all targets have either int32 or int64 for Timespec.Sec.
++	// If there were a new target with floating point type for it, we have
++	// to consider the rounding error.
++	if int64(ts.Sec) != sec {
++		return Timespec{}, ERANGE
++	}
++	return ts, nil
++}
++
++// TimevalToNsec converts a Timeval value into a number of nanoseconds
++// since the Unix epoch.
++func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
++
++// NsecToTimeval takes a number of nanoseconds since the Unix epoch
++// and returns the corresponding Timeval value.
++func NsecToTimeval(nsec int64) Timeval {
++	nsec += 999 // round up to microsecond
++	usec := nsec % 1e9 / 1e3
++	sec := nsec / 1e9
++	if usec < 0 {
++		usec += 1e6
++		sec--
++	}
++	return setTimeval(sec, usec)
++}
++
++// Unix returns ts as the number of seconds and nanoseconds elapsed since the
++// Unix epoch.
++func (ts *Timespec) Unix() (sec int64, nsec int64) {
++	return int64(ts.Sec), int64(ts.Nsec)
++}
++
++// Unix returns tv as the number of seconds and nanoseconds elapsed since the
++// Unix epoch.
++func (tv *Timeval) Unix() (sec int64, nsec int64) {
++	return int64(tv.Sec), int64(tv.Usec) * 1000
++}
++
++// Nano returns ts as the number of nanoseconds elapsed since the Unix epoch.
++func (ts *Timespec) Nano() int64 {
++	return int64(ts.Sec)*1e9 + int64(ts.Nsec)
++}
++
++// Nano returns tv as the number of nanoseconds elapsed since the Unix epoch.
++func (tv *Timeval) Nano() int64 {
++	return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000
++}
+diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_aix.go
+similarity index 53%
+copy from vendor/golang.org/x/sys/unix/types_netbsd.go
+copy to vendor/golang.org/x/sys/unix/types_aix.go
+index cb95c80a..40d2beed 100644
+--- a/vendor/golang.org/x/sys/unix/types_netbsd.go
++++ b/vendor/golang.org/x/sys/unix/types_aix.go
+@@ -1,11 +1,12 @@
+-// Copyright 2009 The Go Authors. All rights reserved.
++// Copyright 2018 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
++// +build aix
+ 
+ /*
+-Input to cgo -godefs.  See README.md
++Input to cgo -godefs.  See also mkerrors.sh and mkall.sh
+ */
+ 
+ // +godefs map struct_in_addr [4]byte /* in_addr */
+@@ -14,44 +15,37 @@ Input to cgo -godefs.  See README.md
+ package unix
+ 
+ /*
+-#define KERNEL
+-#include <dirent.h>
+-#include <fcntl.h>
+-#include <signal.h>
+-#include <termios.h>
+-#include <stdio.h>
+-#include <unistd.h>
+-#include <sys/param.h>
+ #include <sys/types.h>
+-#include <sys/event.h>
+-#include <sys/mman.h>
+-#include <sys/mount.h>
+-#include <sys/ptrace.h>
+-#include <sys/resource.h>
+-#include <sys/select.h>
+-#include <sys/signal.h>
+-#include <sys/socket.h>
+-#include <sys/stat.h>
+-#include <sys/sysctl.h>
+ #include <sys/time.h>
+-#include <sys/uio.h>
++#include <sys/limits.h>
+ #include <sys/un.h>
+-#include <sys/wait.h>
+-#include <net/bpf.h>
++#include <utime.h>
++#include <sys/utsname.h>
++#include <sys/poll.h>
++#include <sys/resource.h>
++#include <sys/stat.h>
++#include <sys/statfs.h>
++#include <sys/termio.h>
++#include <sys/ioctl.h>
++
++#include <termios.h>
++
+ #include <net/if.h>
+ #include <net/if_dl.h>
+-#include <net/route.h>
+ #include <netinet/in.h>
+ #include <netinet/icmp6.h>
+-#include <netinet/tcp.h>
++
++
++#include <dirent.h>
++#include <fcntl.h>
+ 
+ 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 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;
+@@ -65,14 +59,15 @@ struct sockaddr_any {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	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
+@@ -84,32 +79,50 @@ type (
+ 	_C_long_long C.longlong
+ )
+ 
++type off64 C.off64_t
++type off C.off_t
++type Mode_t C.mode_t
++
+ // Time
+ 
+ type Timespec C.struct_timespec
+ 
+ type Timeval C.struct_timeval
+ 
++type Timeval32 C.struct_timeval32
++
++type Timex C.struct_timex
++
++type Time_t C.time_t
++
++type Tms C.struct_tms
++
++type Utimbuf C.struct_utimbuf
++
++type Timezone C.struct_timezone
++
+ // Processes
+ 
+ type Rusage C.struct_rusage
+ 
+-type Rlimit C.struct_rlimit
++type Rlimit C.struct_rlimit64
++
++type Pid_t C.pid_t
+ 
+ type _Gid_t C.gid_t
+ 
++type dev_t C.dev_t
++
+ // Files
+ 
+ type Stat_t C.struct_stat
+ 
+-type Statfs_t C.struct_statfs
++type StatxTimestamp C.struct_statx_timestamp
+ 
+-type Flock_t C.struct_flock
++type Statx_t C.struct_statx
+ 
+ type Dirent C.struct_dirent
+ 
+-type Fsid C.fsid_t
+-
+ // Sockets
+ 
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -126,7 +139,9 @@ type RawSockaddrAny C.struct_sockaddr_any
+ 
+ type _Socklen C.socklen_t
+ 
+-type Linger C.struct_linger
++type Cmsghdr C.struct_cmsghdr
++
++type ICMPv6Filter C.struct_icmp6_filter
+ 
+ type Iovec C.struct_iovec
+ 
+@@ -134,15 +149,11 @@ 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
++type Linger C.struct_linger
++
++type Msghdr C.struct_msghdr
+ 
+ const (
+ 	SizeofSockaddrInet4    = C.sizeof_struct_sockaddr_in
+@@ -153,87 +164,74 @@ const (
+ 	SizeofLinger           = C.sizeof_struct_linger
+ 	SizeofIPMreq           = C.sizeof_struct_ip_mreq
+ 	SizeofIPv6Mreq         = C.sizeof_struct_ipv6_mreq
++	SizeofIPv6MTUInfo      = C.sizeof_struct_ip6_mtuinfo
+ 	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
++// Routing and interface messages
+ 
+ const (
+-	PTRACE_TRACEME = C.PT_TRACE_ME
+-	PTRACE_CONT    = C.PT_CONTINUE
+-	PTRACE_KILL    = C.PT_KILL
++	SizeofIfMsghdr = C.sizeof_struct_if_msghdr
+ )
+ 
+-// Events (kqueue, kevent)
+-
+-type Kevent_t C.struct_kevent
++type IfMsgHdr C.struct_if_msghdr
+ 
+-// Select
++// Misc
+ 
+ type FdSet C.fd_set
+ 
+-// Routing and interface messages
++type Utsname C.struct_utsname
+ 
+-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 Ustat_t C.struct_ustat
+ 
+-type IfMsghdr C.struct_if_msghdr
++type Sigset_t C.sigset_t
+ 
+-type IfData C.struct_if_data
++const (
++	AT_FDCWD            = C.AT_FDCWD
++	AT_REMOVEDIR        = C.AT_REMOVEDIR
++	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
++)
+ 
+-type IfaMsghdr C.struct_ifa_msghdr
++// Terminal handling
+ 
+-type IfAnnounceMsghdr C.struct_if_announcemsghdr
++type Termios C.struct_termios
+ 
+-type RtMsghdr C.struct_rt_msghdr
++type Termio C.struct_termio
+ 
+-type RtMetrics C.struct_rt_metrics
++type Winsize C.struct_winsize
+ 
+-type Mclpool C.struct_mclpool
++//poll
+ 
+-// Berkeley packet filter
++type PollFd struct {
++	Fd      int32
++	Events  uint16
++	Revents uint16
++}
+ 
+ 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
++	POLLERR    = C.POLLERR
++	POLLHUP    = C.POLLHUP
++	POLLIN     = C.POLLIN
++	POLLNVAL   = C.POLLNVAL
++	POLLOUT    = C.POLLOUT
++	POLLPRI    = C.POLLPRI
++	POLLRDBAND = C.POLLRDBAND
++	POLLRDNORM = C.POLLRDNORM
++	POLLWRBAND = C.POLLWRBAND
++	POLLWRNORM = C.POLLWRNORM
+ )
+ 
+-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
++//flock_t
+ 
+-// Terminal handling
+-
+-type Termios C.struct_termios
++type Flock_t C.struct_flock64
+ 
+-// fchmodat-like syscalls.
++// Statfs
+ 
+-const (
+-	AT_FDCWD            = C.AT_FDCWD
+-	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+-)
++type Fsid_t C.struct_fsid_t
++type Fsid64_t C.struct_fsid64_t
+ 
+-// Sysctl
++type Statfs_t C.struct_statfs
+ 
+-type Sysctlnode C.struct_sysctlnode
++const RNDGETENTCNT = 0x80045200
+diff --git a/vendor/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go
+index 415124d4..155c2e69 100644
+--- a/vendor/golang.org/x/sys/unix/types_darwin.go
++++ b/vendor/golang.org/x/sys/unix/types_darwin.go
+@@ -19,6 +19,7 @@ package unix
+ #define _DARWIN_USE_64_BIT_INODE
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <unistd.h>
+@@ -38,6 +39,7 @@ package unix
+ #include <sys/types.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -68,14 +70,14 @@ struct sockaddr_any {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	SizeofPtr      = C.sizeofPtr
++	SizeofShort    = C.sizeof_short
++	SizeofInt      = C.sizeof_int
++	SizeofLong     = C.sizeof_long
++	SizeofLongLong = C.sizeof_longlong
+ )
+ 
+ // Basic types
+@@ -252,3 +254,30 @@ const (
+ 	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
+ 	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++	POLLERR    = C.POLLERR
++	POLLHUP    = C.POLLHUP
++	POLLIN     = C.POLLIN
++	POLLNVAL   = C.POLLNVAL
++	POLLOUT    = C.POLLOUT
++	POLLPRI    = C.POLLPRI
++	POLLRDBAND = C.POLLRDBAND
++	POLLRDNORM = C.POLLRDNORM
++	POLLWRBAND = C.POLLWRBAND
++	POLLWRNORM = C.POLLWRNORM
++)
++
++// uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_dragonfly.go b/vendor/golang.org/x/sys/unix/types_dragonfly.go
+index 80b27781..6574f6b6 100644
+--- a/vendor/golang.org/x/sys/unix/types_dragonfly.go
++++ b/vendor/golang.org/x/sys/unix/types_dragonfly.go
+@@ -17,6 +17,7 @@ package unix
+ #define KERNEL
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+@@ -34,6 +35,7 @@ package unix
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -63,14 +65,14 @@ struct sockaddr_any {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	SizeofPtr      = C.sizeofPtr
++	SizeofShort    = C.sizeof_short
++	SizeofInt      = C.sizeof_int
++	SizeofLong     = C.sizeof_long
++	SizeofLongLong = C.sizeof_longlong
+ )
+ 
+ // Basic types
+@@ -98,23 +100,6 @@ 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
+@@ -125,6 +110,12 @@ type Dirent C.struct_dirent
+ 
+ type Fsid C.struct_fsid
+ 
++// File system limits
++
++const (
++	PathMax = C.PATH_MAX
++)
++
+ // Sockets
+ 
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -241,9 +232,38 @@ type BpfHdr C.struct_bpf_hdr
+ 
+ type Termios C.struct_termios
+ 
++type Winsize C.struct_winsize
++
+ // fchmodat-like syscalls.
+ 
+ const (
+ 	AT_FDCWD            = C.AT_FDCWD
+ 	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++	POLLERR    = C.POLLERR
++	POLLHUP    = C.POLLHUP
++	POLLIN     = C.POLLIN
++	POLLNVAL   = C.POLLNVAL
++	POLLOUT    = C.POLLOUT
++	POLLPRI    = C.POLLPRI
++	POLLRDBAND = C.POLLRDBAND
++	POLLRDNORM = C.POLLRDNORM
++	POLLWRBAND = C.POLLWRBAND
++	POLLWRNORM = C.POLLWRNORM
++)
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go
+index 934fd7ac..c6fde424 100644
+--- a/vendor/golang.org/x/sys/unix/types_freebsd.go
++++ b/vendor/golang.org/x/sys/unix/types_freebsd.go
+@@ -14,14 +14,19 @@ Input to cgo -godefs.  See README.md
+ package unix
+ 
+ /*
+-#define KERNEL
++#define	_WANT_FREEBSD11_STAT	1
++#define	_WANT_FREEBSD11_STATFS	1
++#define	_WANT_FREEBSD11_DIRENT	1
++#define	_WANT_FREEBSD11_KEVENT  1
++
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+ #include <unistd.h>
+-#include <sys/capability.h>
++#include <sys/capsicum.h>
+ #include <sys/event.h>
+ #include <sys/mman.h>
+ #include <sys/mount.h>
+@@ -35,6 +40,7 @@ package unix
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -61,50 +67,6 @@ struct sockaddr_any {
+ 	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 {
+@@ -152,14 +114,14 @@ struct if_msghdr8 {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	SizeofPtr      = C.sizeofPtr
++	SizeofShort    = C.sizeof_short
++	SizeofInt      = C.sizeof_int
++	SizeofLong     = C.sizeof_long
++	SizeofLongLong = C.sizeof_longlong
+ )
+ 
+ // Basic types
+@@ -187,33 +149,33 @@ 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
++const (
++	_statfsVersion = C.STATFS_VERSION
++	_dirblksiz     = C.DIRBLKSIZ
+ )
+ 
+-type Stat_t C.struct_stat8
++type Stat_t C.struct_stat
++
++type stat_freebsd11_t C.struct_freebsd11_stat
+ 
+ type Statfs_t C.struct_statfs
+ 
++type statfs_freebsd11_t C.struct_freebsd11_statfs
++
+ type Flock_t C.struct_flock
+ 
+ type Dirent C.struct_dirent
+ 
++type dirent_freebsd11 C.struct_freebsd11_dirent
++
+ type Fsid C.struct_fsid
+ 
++// File system limits
++
++const (
++	PathMax = C.PATH_MAX
++)
++
+ // Advice to Fadvise
+ 
+ const (
+@@ -281,14 +243,58 @@ const (
+ // Ptrace requests
+ 
+ const (
+-	PTRACE_TRACEME = C.PT_TRACE_ME
+-	PTRACE_CONT    = C.PT_CONTINUE
+-	PTRACE_KILL    = C.PT_KILL
++	PTRACE_ATTACH     = C.PT_ATTACH
++	PTRACE_CONT       = C.PT_CONTINUE
++	PTRACE_DETACH     = C.PT_DETACH
++	PTRACE_GETFPREGS  = C.PT_GETFPREGS
++	PTRACE_GETFSBASE  = C.PT_GETFSBASE
++	PTRACE_GETLWPLIST = C.PT_GETLWPLIST
++	PTRACE_GETNUMLWPS = C.PT_GETNUMLWPS
++	PTRACE_GETREGS    = C.PT_GETREGS
++	PTRACE_GETXSTATE  = C.PT_GETXSTATE
++	PTRACE_IO         = C.PT_IO
++	PTRACE_KILL       = C.PT_KILL
++	PTRACE_LWPEVENTS  = C.PT_LWP_EVENTS
++	PTRACE_LWPINFO    = C.PT_LWPINFO
++	PTRACE_SETFPREGS  = C.PT_SETFPREGS
++	PTRACE_SETREGS    = C.PT_SETREGS
++	PTRACE_SINGLESTEP = C.PT_STEP
++	PTRACE_TRACEME    = C.PT_TRACE_ME
++)
++
++const (
++	PIOD_READ_D  = C.PIOD_READ_D
++	PIOD_WRITE_D = C.PIOD_WRITE_D
++	PIOD_READ_I  = C.PIOD_READ_I
++	PIOD_WRITE_I = C.PIOD_WRITE_I
++)
++
++const (
++	PL_FLAG_BORN   = C.PL_FLAG_BORN
++	PL_FLAG_EXITED = C.PL_FLAG_EXITED
++	PL_FLAG_SI     = C.PL_FLAG_SI
++)
++
++const (
++	TRAP_BRKPT = C.TRAP_BRKPT
++	TRAP_TRACE = C.TRAP_TRACE
+ )
+ 
++type PtraceLwpInfoStruct C.struct_ptrace_lwpinfo
++
++type __Siginfo C.struct___siginfo
++
++type Sigset_t C.sigset_t
++
++type Reg C.struct_reg
++
++type FpReg C.struct_fpreg
++
++type PtraceIoDesc C.struct_ptrace_io_desc
++
+ // Events (kqueue, kevent)
+ 
+-type Kevent_t C.struct_kevent
++type Kevent_t C.struct_kevent_freebsd11
+ 
+ // Select
+ 
+@@ -367,6 +373,34 @@ const (
+ 	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
+ 
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++	POLLERR      = C.POLLERR
++	POLLHUP      = C.POLLHUP
++	POLLIN       = C.POLLIN
++	POLLINIGNEOF = C.POLLINIGNEOF
++	POLLNVAL     = C.POLLNVAL
++	POLLOUT      = C.POLLOUT
++	POLLPRI      = C.POLLPRI
++	POLLRDBAND   = C.POLLRDBAND
++	POLLRDNORM   = C.POLLRDNORM
++	POLLWRBAND   = C.POLLWRBAND
++	POLLWRNORM   = C.POLLWRNORM
++)
++
+ // Capabilities
+ 
+ type CapRights C.struct_cap_rights
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go
+index cb95c80a..0a81aadb 100644
+--- a/vendor/golang.org/x/sys/unix/types_netbsd.go
++++ b/vendor/golang.org/x/sys/unix/types_netbsd.go
+@@ -17,6 +17,7 @@ package unix
+ #define KERNEL
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+@@ -32,10 +33,12 @@ package unix
+ #include <sys/signal.h>
+ #include <sys/socket.h>
+ #include <sys/stat.h>
++#include <sys/statvfs.h>
+ #include <sys/sysctl.h>
+ #include <sys/time.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+@@ -65,14 +68,14 @@ struct sockaddr_any {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	SizeofPtr      = C.sizeofPtr
++	SizeofShort    = C.sizeof_short
++	SizeofInt      = C.sizeof_int
++	SizeofLong     = C.sizeof_long
++	SizeofLongLong = C.sizeof_longlong
+ )
+ 
+ // Basic types
+@@ -104,12 +107,38 @@ type Stat_t C.struct_stat
+ 
+ type Statfs_t C.struct_statfs
+ 
++type Statvfs_t C.struct_statvfs
++
+ type Flock_t C.struct_flock
+ 
+ type Dirent C.struct_dirent
+ 
+ type Fsid C.fsid_t
+ 
++// File system limits
++
++const (
++	PathMax = C.PATH_MAX
++)
++
++// Fstatvfs/Statvfs flags
++
++const (
++	ST_WAIT   = C.ST_WAIT
++	ST_NOWAIT = C.ST_NOWAIT
++)
++
++// 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
+@@ -227,13 +256,45 @@ type BpfTimeval C.struct_bpf_timeval
+ 
+ type Termios C.struct_termios
+ 
++type Winsize C.struct_winsize
++
++type Ptmget C.struct_ptmget
++
+ // fchmodat-like syscalls.
+ 
+ const (
+ 	AT_FDCWD            = C.AT_FDCWD
++	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
+ 	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
+ 
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++	POLLERR    = C.POLLERR
++	POLLHUP    = C.POLLHUP
++	POLLIN     = C.POLLIN
++	POLLNVAL   = C.POLLNVAL
++	POLLOUT    = C.POLLOUT
++	POLLPRI    = C.POLLPRI
++	POLLRDBAND = C.POLLRDBAND
++	POLLRDNORM = C.POLLRDNORM
++	POLLWRBAND = C.POLLWRBAND
++	POLLWRNORM = C.POLLWRNORM
++)
++
+ // Sysctl
+ 
+ type Sysctlnode C.struct_sysctlnode
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go
+index 392da69b..775cb57d 100644
+--- a/vendor/golang.org/x/sys/unix/types_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/types_openbsd.go
+@@ -17,6 +17,7 @@ package unix
+ #define KERNEL
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdio.h>
+@@ -35,7 +36,9 @@ package unix
+ #include <sys/time.h>
+ #include <sys/uio.h>
+ #include <sys/un.h>
++#include <sys/utsname.h>
+ #include <sys/wait.h>
++#include <uvm/uvmexp.h>
+ #include <net/bpf.h>
+ #include <net/if.h>
+ #include <net/if_dl.h>
+@@ -64,14 +67,14 @@ struct sockaddr_any {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	SizeofPtr      = C.sizeofPtr
++	SizeofShort    = C.sizeof_short
++	SizeofInt      = C.sizeof_int
++	SizeofLong     = C.sizeof_long
++	SizeofLongLong = C.sizeof_longlong
+ )
+ 
+ // Basic types
+@@ -99,23 +102,6 @@ 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
+@@ -126,6 +112,12 @@ type Dirent C.struct_dirent
+ 
+ type Fsid C.fsid_t
+ 
++// File system limits
++
++const (
++	PathMax = C.PATH_MAX
++)
++
+ // Sockets
+ 
+ type RawSockaddrInet4 C.struct_sockaddr_in
+@@ -243,9 +235,49 @@ type BpfTimeval C.struct_bpf_timeval
+ 
+ type Termios C.struct_termios
+ 
++type Winsize C.struct_winsize
++
+ // fchmodat-like syscalls.
+ 
+ const (
+ 	AT_FDCWD            = C.AT_FDCWD
++	AT_SYMLINK_FOLLOW   = C.AT_SYMLINK_FOLLOW
+ 	AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ )
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++	POLLERR    = C.POLLERR
++	POLLHUP    = C.POLLHUP
++	POLLIN     = C.POLLIN
++	POLLNVAL   = C.POLLNVAL
++	POLLOUT    = C.POLLOUT
++	POLLPRI    = C.POLLPRI
++	POLLRDBAND = C.POLLRDBAND
++	POLLRDNORM = C.POLLRDNORM
++	POLLWRBAND = C.POLLWRBAND
++	POLLWRNORM = C.POLLWRNORM
++)
++
++// Signal Sets
++
++type Sigset_t C.sigset_t
++
++// Uname
++
++type Utsname C.struct_utsname
++
++// Uvmexp
++
++const SizeofUvmexp = C.sizeof_struct_uvmexp
++
++type Uvmexp C.struct_uvmexp
++
++// Clockinfo
++
++const SizeofClockinfo = C.sizeof_struct_clockinfo
++
++type Clockinfo C.struct_clockinfo
+diff --git a/vendor/golang.org/x/sys/unix/types_solaris.go b/vendor/golang.org/x/sys/unix/types_solaris.go
+index 393c7f04..d713f09e 100644
+--- a/vendor/golang.org/x/sys/unix/types_solaris.go
++++ b/vendor/golang.org/x/sys/unix/types_solaris.go
+@@ -24,6 +24,7 @@ package unix
+ #include <fcntl.h>
+ #include <netdb.h>
+ #include <limits.h>
++#include <poll.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <termio.h>
+@@ -74,14 +75,14 @@ struct sockaddr_any {
+ */
+ import "C"
+ 
+-// Machine characteristics; for internal use.
++// Machine characteristics
+ 
+ const (
+-	sizeofPtr      = C.sizeofPtr
+-	sizeofShort    = C.sizeof_short
+-	sizeofInt      = C.sizeof_int
+-	sizeofLong     = C.sizeof_long
+-	sizeofLongLong = C.sizeof_longlong
++	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
+ )
+@@ -117,23 +118,6 @@ 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
+@@ -174,6 +158,8 @@ 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
+@@ -191,6 +177,7 @@ const (
+ 	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
+@@ -256,10 +243,6 @@ 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
+@@ -267,3 +250,20 @@ type Termios C.struct_termios
+ type Termio C.struct_termio
+ 
+ type Winsize C.struct_winsize
++
++// poll
++
++type PollFd C.struct_pollfd
++
++const (
++	POLLERR    = C.POLLERR
++	POLLHUP    = C.POLLHUP
++	POLLIN     = C.POLLIN
++	POLLNVAL   = C.POLLNVAL
++	POLLOUT    = C.POLLOUT
++	POLLPRI    = C.POLLPRI
++	POLLRDBAND = C.POLLRDBAND
++	POLLRDNORM = C.POLLRDNORM
++	POLLWRBAND = C.POLLWRBAND
++	POLLWRNORM = C.POLLWRNORM
++)
+diff --git a/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/vendor/golang.org/x/sys/unix/unveil_openbsd.go
+new file mode 100644
+index 00000000..168d5ae7
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/unveil_openbsd.go
+@@ -0,0 +1,42 @@
++// Copyright 2018 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"
++)
++
++// Unveil implements the unveil syscall.
++// For more information see unveil(2).
++// Note that the special case of blocking further
++// unveil calls is handled by UnveilBlock.
++func Unveil(path string, flags string) error {
++	pathPtr, err := syscall.BytePtrFromString(path)
++	if err != nil {
++		return err
++	}
++	flagsPtr, err := syscall.BytePtrFromString(flags)
++	if err != nil {
++		return err
++	}
++	_, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0)
++	if e != 0 {
++		return e
++	}
++	return nil
++}
++
++// UnveilBlock blocks future unveil calls.
++// For more information see unveil(2).
++func UnveilBlock() error {
++	// Both pointers must be nil.
++	var pathUnsafe, flagsUnsafe unsafe.Pointer
++	_, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0)
++	if e != 0 {
++		return e
++	}
++	return nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/xattr_bsd.go b/vendor/golang.org/x/sys/unix/xattr_bsd.go
+new file mode 100644
+index 00000000..30c1d71f
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/xattr_bsd.go
+@@ -0,0 +1,240 @@
++// Copyright 2018 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 freebsd netbsd
++
++package unix
++
++import (
++	"strings"
++	"unsafe"
++)
++
++// Derive extattr namespace and attribute name
++
++func xattrnamespace(fullattr string) (ns int, attr string, err error) {
++	s := strings.IndexByte(fullattr, '.')
++	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 and NetBSD implement their 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) {
++	var d unsafe.Pointer
++	if len(data) > 0 {
++		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) {
++	var d unsafe.Pointer
++	if len(data) > 0 {
++		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) {
++	var d unsafe.Pointer
++	if len(data) > 0 {
++		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
++	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 {
++			continue
++		} else if e != nil {
++			return s, e
++		}
++
++		s += stmp
++		destsiz -= s
++		if destsiz < 0 {
++			destsiz = 0
++		}
++		d = initxattrdest(dest, s)
++	}
++
++	return s, nil
++}
++
++func Flistxattr(fd int, dest []byte) (sz int, err error) {
++	d := initxattrdest(dest, 0)
++	destsiz := len(dest)
++
++	s := 0
++	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 {
++			continue
++		} else if e != nil {
++			return s, e
++		}
++
++		s += stmp
++		destsiz -= s
++		if destsiz < 0 {
++			destsiz = 0
++		}
++		d = initxattrdest(dest, s)
++	}
++
++	return s, nil
++}
++
++func Llistxattr(link string, dest []byte) (sz int, err error) {
++	d := initxattrdest(dest, 0)
++	destsiz := len(dest)
++
++	s := 0
++	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 {
++			continue
++		} else if e != nil {
++			return s, e
++		}
++
++		s += stmp
++		destsiz -= s
++		if destsiz < 0 {
++			destsiz = 0
++		}
++		d = initxattrdest(dest, s)
++	}
++
++	return s, nil
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+new file mode 100644
+index 00000000..104994bc
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go
+@@ -0,0 +1,1384 @@
++// mkerrors.sh -maix32
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc,aix
++
++// Created by cgo -godefs - DO NOT EDIT
++// cgo -godefs -- -maix32 _const.go
++
++package unix
++
++import "syscall"
++
++const (
++	AF_APPLETALK                  = 0x10
++	AF_BYPASS                     = 0x19
++	AF_CCITT                      = 0xa
++	AF_CHAOS                      = 0x5
++	AF_DATAKIT                    = 0x9
++	AF_DECnet                     = 0xc
++	AF_DLI                        = 0xd
++	AF_ECMA                       = 0x8
++	AF_HYLINK                     = 0xf
++	AF_IMPLINK                    = 0x3
++	AF_INET                       = 0x2
++	AF_INET6                      = 0x18
++	AF_INTF                       = 0x14
++	AF_ISO                        = 0x7
++	AF_LAT                        = 0xe
++	AF_LINK                       = 0x12
++	AF_LOCAL                      = 0x1
++	AF_MAX                        = 0x1e
++	AF_NDD                        = 0x17
++	AF_NETWARE                    = 0x16
++	AF_NS                         = 0x6
++	AF_OSI                        = 0x7
++	AF_PUP                        = 0x4
++	AF_RIF                        = 0x15
++	AF_ROUTE                      = 0x11
++	AF_SNA                        = 0xb
++	AF_UNIX                       = 0x1
++	AF_UNSPEC                     = 0x0
++	ALTWERASE                     = 0x400000
++	ARPHRD_802_3                  = 0x6
++	ARPHRD_802_5                  = 0x6
++	ARPHRD_ETHER                  = 0x1
++	ARPHRD_FDDI                   = 0x1
++	B0                            = 0x0
++	B110                          = 0x3
++	B1200                         = 0x9
++	B134                          = 0x4
++	B150                          = 0x5
++	B1800                         = 0xa
++	B19200                        = 0xe
++	B200                          = 0x6
++	B2400                         = 0xb
++	B300                          = 0x7
++	B38400                        = 0xf
++	B4800                         = 0xc
++	B50                           = 0x1
++	B600                          = 0x8
++	B75                           = 0x2
++	B9600                         = 0xd
++	BRKINT                        = 0x2
++	BS0                           = 0x0
++	BS1                           = 0x1000
++	BSDLY                         = 0x1000
++	CAP_AACCT                     = 0x6
++	CAP_ARM_APPLICATION           = 0x5
++	CAP_BYPASS_RAC_VMM            = 0x3
++	CAP_CLEAR                     = 0x0
++	CAP_CREDENTIALS               = 0x7
++	CAP_EFFECTIVE                 = 0x1
++	CAP_EWLM_AGENT                = 0x4
++	CAP_INHERITABLE               = 0x2
++	CAP_MAXIMUM                   = 0x7
++	CAP_NUMA_ATTACH               = 0x2
++	CAP_PERMITTED                 = 0x3
++	CAP_PROPAGATE                 = 0x1
++	CAP_PROPOGATE                 = 0x1
++	CAP_SET                       = 0x1
++	CBAUD                         = 0xf
++	CFLUSH                        = 0xf
++	CIBAUD                        = 0xf0000
++	CLOCAL                        = 0x800
++	CLOCK_MONOTONIC               = 0xa
++	CLOCK_PROCESS_CPUTIME_ID      = 0xb
++	CLOCK_REALTIME                = 0x9
++	CLOCK_THREAD_CPUTIME_ID       = 0xc
++	CR0                           = 0x0
++	CR1                           = 0x100
++	CR2                           = 0x200
++	CR3                           = 0x300
++	CRDLY                         = 0x300
++	CREAD                         = 0x80
++	CS5                           = 0x0
++	CS6                           = 0x10
++	CS7                           = 0x20
++	CS8                           = 0x30
++	CSIOCGIFCONF                  = -0x3ff796dc
++	CSIZE                         = 0x30
++	CSMAP_DIR                     = "/usr/lib/nls/csmap/"
++	CSTART                        = '\021'
++	CSTOP                         = '\023'
++	CSTOPB                        = 0x40
++	CSUSP                         = 0x1a
++	ECHO                          = 0x8
++	ECHOCTL                       = 0x20000
++	ECHOE                         = 0x10
++	ECHOK                         = 0x20
++	ECHOKE                        = 0x80000
++	ECHONL                        = 0x40
++	ECHOPRT                       = 0x40000
++	ECH_ICMPID                    = 0x2
++	ETHERNET_CSMACD               = 0x6
++	EVENP                         = 0x80
++	EXCONTINUE                    = 0x0
++	EXDLOK                        = 0x3
++	EXIO                          = 0x2
++	EXPGIO                        = 0x0
++	EXRESUME                      = 0x2
++	EXRETURN                      = 0x1
++	EXSIG                         = 0x4
++	EXTA                          = 0xe
++	EXTB                          = 0xf
++	EXTRAP                        = 0x1
++	EYEC_RTENTRYA                 = 0x257274656e747241
++	EYEC_RTENTRYF                 = 0x257274656e747246
++	E_ACC                         = 0x0
++	FD_CLOEXEC                    = 0x1
++	FD_SETSIZE                    = 0xfffe
++	FF0                           = 0x0
++	FF1                           = 0x2000
++	FFDLY                         = 0x2000
++	FLUSHBAND                     = 0x40
++	FLUSHLOW                      = 0x8
++	FLUSHO                        = 0x100000
++	FLUSHR                        = 0x1
++	FLUSHRW                       = 0x3
++	FLUSHW                        = 0x2
++	F_CLOSEM                      = 0xa
++	F_DUP2FD                      = 0xe
++	F_DUPFD                       = 0x0
++	F_GETFD                       = 0x1
++	F_GETFL                       = 0x3
++	F_GETLK                       = 0x5
++	F_GETLK64                     = 0xb
++	F_GETOWN                      = 0x8
++	F_LOCK                        = 0x1
++	F_OK                          = 0x0
++	F_RDLCK                       = 0x1
++	F_SETFD                       = 0x2
++	F_SETFL                       = 0x4
++	F_SETLK                       = 0x6
++	F_SETLK64                     = 0xc
++	F_SETLKW                      = 0x7
++	F_SETLKW64                    = 0xd
++	F_SETOWN                      = 0x9
++	F_TEST                        = 0x3
++	F_TLOCK                       = 0x2
++	F_TSTLK                       = 0xf
++	F_ULOCK                       = 0x0
++	F_UNLCK                       = 0x3
++	F_WRLCK                       = 0x2
++	HUPCL                         = 0x400
++	IBSHIFT                       = 0x10
++	ICANON                        = 0x2
++	ICMP6_FILTER                  = 0x26
++	ICMP6_SEC_SEND_DEL            = 0x46
++	ICMP6_SEC_SEND_GET            = 0x47
++	ICMP6_SEC_SEND_SET            = 0x44
++	ICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45
++	ICRNL                         = 0x100
++	IEXTEN                        = 0x200000
++	IFA_FIRSTALIAS                = 0x2000
++	IFA_ROUTE                     = 0x1
++	IFF_64BIT                     = 0x4000000
++	IFF_ALLCAST                   = 0x20000
++	IFF_ALLMULTI                  = 0x200
++	IFF_BPF                       = 0x8000000
++	IFF_BRIDGE                    = 0x40000
++	IFF_BROADCAST                 = 0x2
++	IFF_CANTCHANGE                = 0x80c52
++	IFF_CHECKSUM_OFFLOAD          = 0x10000000
++	IFF_D1                        = 0x8000
++	IFF_D2                        = 0x4000
++	IFF_D3                        = 0x2000
++	IFF_D4                        = 0x1000
++	IFF_DEBUG                     = 0x4
++	IFF_DEVHEALTH                 = 0x4000
++	IFF_DO_HW_LOOPBACK            = 0x10000
++	IFF_GROUP_ROUTING             = 0x2000000
++	IFF_IFBUFMGT                  = 0x800000
++	IFF_LINK0                     = 0x100000
++	IFF_LINK1                     = 0x200000
++	IFF_LINK2                     = 0x400000
++	IFF_LOOPBACK                  = 0x8
++	IFF_MULTICAST                 = 0x80000
++	IFF_NOARP                     = 0x80
++	IFF_NOECHO                    = 0x800
++	IFF_NOTRAILERS                = 0x20
++	IFF_OACTIVE                   = 0x400
++	IFF_POINTOPOINT               = 0x10
++	IFF_PROMISC                   = 0x100
++	IFF_PSEG                      = 0x40000000
++	IFF_RUNNING                   = 0x40
++	IFF_SIMPLEX                   = 0x800
++	IFF_SNAP                      = 0x8000
++	IFF_TCP_DISABLE_CKSUM         = 0x20000000
++	IFF_TCP_NOCKSUM               = 0x1000000
++	IFF_UP                        = 0x1
++	IFF_VIPA                      = 0x80000000
++	IFNAMSIZ                      = 0x10
++	IFO_FLUSH                     = 0x1
++	IFT_1822                      = 0x2
++	IFT_AAL5                      = 0x31
++	IFT_ARCNET                    = 0x23
++	IFT_ARCNETPLUS                = 0x24
++	IFT_ATM                       = 0x25
++	IFT_CEPT                      = 0x13
++	IFT_CLUSTER                   = 0x3e
++	IFT_DS3                       = 0x1e
++	IFT_EON                       = 0x19
++	IFT_ETHER                     = 0x6
++	IFT_FCS                       = 0x3a
++	IFT_FDDI                      = 0xf
++	IFT_FRELAY                    = 0x20
++	IFT_FRELAYDCE                 = 0x2c
++	IFT_GIFTUNNEL                 = 0x3c
++	IFT_HDH1822                   = 0x3
++	IFT_HF                        = 0x3d
++	IFT_HIPPI                     = 0x2f
++	IFT_HSSI                      = 0x2e
++	IFT_HY                        = 0xe
++	IFT_IB                        = 0xc7
++	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_SN                        = 0x38
++	IFT_SONET                     = 0x27
++	IFT_SONETPATH                 = 0x32
++	IFT_SONETVT                   = 0x33
++	IFT_SP                        = 0x39
++	IFT_STARLAN                   = 0xb
++	IFT_T1                        = 0x12
++	IFT_TUNNEL                    = 0x3b
++	IFT_ULTRA                     = 0x1d
++	IFT_V35                       = 0x2d
++	IFT_VIPA                      = 0x37
++	IFT_X25                       = 0x5
++	IFT_X25DDN                    = 0x4
++	IFT_X25PLE                    = 0x28
++	IFT_XETHER                    = 0x1a
++	IGNBRK                        = 0x1
++	IGNCR                         = 0x80
++	IGNPAR                        = 0x4
++	IMAXBEL                       = 0x10000
++	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_USE                        = 0x1
++	IPPROTO_AH                    = 0x33
++	IPPROTO_BIP                   = 0x53
++	IPPROTO_DSTOPTS               = 0x3c
++	IPPROTO_EGP                   = 0x8
++	IPPROTO_EON                   = 0x50
++	IPPROTO_ESP                   = 0x32
++	IPPROTO_FRAGMENT              = 0x2c
++	IPPROTO_GGP                   = 0x3
++	IPPROTO_GIF                   = 0x8c
++	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_LOCAL                 = 0x3f
++	IPPROTO_MAX                   = 0x100
++	IPPROTO_MH                    = 0x87
++	IPPROTO_NONE                  = 0x3b
++	IPPROTO_PUP                   = 0xc
++	IPPROTO_QOS                   = 0x2d
++	IPPROTO_RAW                   = 0xff
++	IPPROTO_ROUTING               = 0x2b
++	IPPROTO_RSVP                  = 0x2e
++	IPPROTO_SCTP                  = 0x84
++	IPPROTO_TCP                   = 0x6
++	IPPROTO_TP                    = 0x1d
++	IPPROTO_UDP                   = 0x11
++	IPV6_ADDRFORM                 = 0x16
++	IPV6_ADDR_PREFERENCES         = 0x4a
++	IPV6_ADD_MEMBERSHIP           = 0xc
++	IPV6_AIXRAWSOCKET             = 0x39
++	IPV6_CHECKSUM                 = 0x27
++	IPV6_DONTFRAG                 = 0x2d
++	IPV6_DROP_MEMBERSHIP          = 0xd
++	IPV6_DSTOPTS                  = 0x36
++	IPV6_FLOWINFO_FLOWLABEL       = 0xffffff
++	IPV6_FLOWINFO_PRIFLOW         = 0xfffffff
++	IPV6_FLOWINFO_PRIORITY        = 0xf000000
++	IPV6_FLOWINFO_SRFLAG          = 0x10000000
++	IPV6_FLOWINFO_VERSION         = 0xf0000000
++	IPV6_HOPLIMIT                 = 0x28
++	IPV6_HOPOPTS                  = 0x34
++	IPV6_JOIN_GROUP               = 0xc
++	IPV6_LEAVE_GROUP              = 0xd
++	IPV6_MIPDSTOPTS               = 0x36
++	IPV6_MULTICAST_HOPS           = 0xa
++	IPV6_MULTICAST_IF             = 0x9
++	IPV6_MULTICAST_LOOP           = 0xb
++	IPV6_NEXTHOP                  = 0x30
++	IPV6_NOPROBE                  = 0x1c
++	IPV6_PATHMTU                  = 0x2e
++	IPV6_PKTINFO                  = 0x21
++	IPV6_PKTOPTIONS               = 0x24
++	IPV6_PRIORITY_10              = 0xa000000
++	IPV6_PRIORITY_11              = 0xb000000
++	IPV6_PRIORITY_12              = 0xc000000
++	IPV6_PRIORITY_13              = 0xd000000
++	IPV6_PRIORITY_14              = 0xe000000
++	IPV6_PRIORITY_15              = 0xf000000
++	IPV6_PRIORITY_8               = 0x8000000
++	IPV6_PRIORITY_9               = 0x9000000
++	IPV6_PRIORITY_BULK            = 0x4000000
++	IPV6_PRIORITY_CONTROL         = 0x7000000
++	IPV6_PRIORITY_FILLER          = 0x1000000
++	IPV6_PRIORITY_INTERACTIVE     = 0x6000000
++	IPV6_PRIORITY_RESERVED1       = 0x3000000
++	IPV6_PRIORITY_RESERVED2       = 0x5000000
++	IPV6_PRIORITY_UNATTENDED      = 0x2000000
++	IPV6_PRIORITY_UNCHARACTERIZED = 0x0
++	IPV6_RECVDSTOPTS              = 0x38
++	IPV6_RECVHOPLIMIT             = 0x29
++	IPV6_RECVHOPOPTS              = 0x35
++	IPV6_RECVHOPS                 = 0x22
++	IPV6_RECVIF                   = 0x1e
++	IPV6_RECVPATHMTU              = 0x2f
++	IPV6_RECVPKTINFO              = 0x23
++	IPV6_RECVRTHDR                = 0x33
++	IPV6_RECVSRCRT                = 0x1d
++	IPV6_RECVTCLASS               = 0x2a
++	IPV6_RTHDR                    = 0x32
++	IPV6_RTHDRDSTOPTS             = 0x37
++	IPV6_RTHDR_TYPE_0             = 0x0
++	IPV6_RTHDR_TYPE_2             = 0x2
++	IPV6_SENDIF                   = 0x1f
++	IPV6_SRFLAG_LOOSE             = 0x0
++	IPV6_SRFLAG_STRICT            = 0x10000000
++	IPV6_TCLASS                   = 0x2b
++	IPV6_TOKEN_LENGTH             = 0x40
++	IPV6_UNICAST_HOPS             = 0x4
++	IPV6_USE_MIN_MTU              = 0x2c
++	IPV6_V6ONLY                   = 0x25
++	IPV6_VERSION                  = 0x60000000
++	IP_ADDRFORM                   = 0x16
++	IP_ADD_MEMBERSHIP             = 0xc
++	IP_ADD_SOURCE_MEMBERSHIP      = 0x3c
++	IP_BLOCK_SOURCE               = 0x3a
++	IP_BROADCAST_IF               = 0x10
++	IP_CACHE_LINE_SIZE            = 0x80
++	IP_DEFAULT_MULTICAST_LOOP     = 0x1
++	IP_DEFAULT_MULTICAST_TTL      = 0x1
++	IP_DF                         = 0x4000
++	IP_DHCPMODE                   = 0x11
++	IP_DONTFRAG                   = 0x19
++	IP_DROP_MEMBERSHIP            = 0xd
++	IP_DROP_SOURCE_MEMBERSHIP     = 0x3d
++	IP_FINDPMTU                   = 0x1a
++	IP_HDRINCL                    = 0x2
++	IP_INC_MEMBERSHIPS            = 0x14
++	IP_INIT_MEMBERSHIP            = 0x14
++	IP_MAXPACKET                  = 0xffff
++	IP_MF                         = 0x2000
++	IP_MSS                        = 0x240
++	IP_MULTICAST_HOPS             = 0xa
++	IP_MULTICAST_IF               = 0x9
++	IP_MULTICAST_LOOP             = 0xb
++	IP_MULTICAST_TTL              = 0xa
++	IP_OPT                        = 0x1b
++	IP_OPTIONS                    = 0x1
++	IP_PMTUAGE                    = 0x1b
++	IP_RECVDSTADDR                = 0x7
++	IP_RECVIF                     = 0x14
++	IP_RECVIFINFO                 = 0xf
++	IP_RECVINTERFACE              = 0x20
++	IP_RECVMACHDR                 = 0xe
++	IP_RECVOPTS                   = 0x5
++	IP_RECVRETOPTS                = 0x6
++	IP_RECVTTL                    = 0x22
++	IP_RETOPTS                    = 0x8
++	IP_SOURCE_FILTER              = 0x48
++	IP_TOS                        = 0x3
++	IP_TTL                        = 0x4
++	IP_UNBLOCK_SOURCE             = 0x3b
++	IP_UNICAST_HOPS               = 0x4
++	ISIG                          = 0x1
++	ISTRIP                        = 0x20
++	IUCLC                         = 0x800
++	IXANY                         = 0x1000
++	IXOFF                         = 0x400
++	IXON                          = 0x200
++	I_FLUSH                       = 0x20005305
++	LNOFLSH                       = 0x8000
++	LOCK_EX                       = 0x2
++	LOCK_NB                       = 0x4
++	LOCK_SH                       = 0x1
++	LOCK_UN                       = 0x8
++	MADV_DONTNEED                 = 0x4
++	MADV_NORMAL                   = 0x0
++	MADV_RANDOM                   = 0x1
++	MADV_SEQUENTIAL               = 0x2
++	MADV_SPACEAVAIL               = 0x5
++	MADV_WILLNEED                 = 0x3
++	MAP_ANON                      = 0x10
++	MAP_ANONYMOUS                 = 0x10
++	MAP_FILE                      = 0x0
++	MAP_FIXED                     = 0x100
++	MAP_PRIVATE                   = 0x2
++	MAP_SHARED                    = 0x1
++	MAP_TYPE                      = 0xf0
++	MAP_VARIABLE                  = 0x0
++	MCAST_BLOCK_SOURCE            = 0x40
++	MCAST_EXCLUDE                 = 0x2
++	MCAST_INCLUDE                 = 0x1
++	MCAST_JOIN_GROUP              = 0x3e
++	MCAST_JOIN_SOURCE_GROUP       = 0x42
++	MCAST_LEAVE_GROUP             = 0x3f
++	MCAST_LEAVE_SOURCE_GROUP      = 0x43
++	MCAST_SOURCE_FILTER           = 0x49
++	MCAST_UNBLOCK_SOURCE          = 0x41
++	MCL_CURRENT                   = 0x100
++	MCL_FUTURE                    = 0x200
++	MSG_ANY                       = 0x4
++	MSG_ARGEXT                    = 0x400
++	MSG_BAND                      = 0x2
++	MSG_COMPAT                    = 0x8000
++	MSG_CTRUNC                    = 0x20
++	MSG_DONTROUTE                 = 0x4
++	MSG_EOR                       = 0x8
++	MSG_HIPRI                     = 0x1
++	MSG_MAXIOVLEN                 = 0x10
++	MSG_MPEG2                     = 0x80
++	MSG_NONBLOCK                  = 0x4000
++	MSG_NOSIGNAL                  = 0x100
++	MSG_OOB                       = 0x1
++	MSG_PEEK                      = 0x2
++	MSG_TRUNC                     = 0x10
++	MSG_WAITALL                   = 0x40
++	MSG_WAITFORONE                = 0x200
++	MS_ASYNC                      = 0x10
++	MS_EINTR                      = 0x80
++	MS_INVALIDATE                 = 0x40
++	MS_PER_SEC                    = 0x3e8
++	MS_SYNC                       = 0x20
++	NFDBITS                       = 0x20
++	NL0                           = 0x0
++	NL1                           = 0x4000
++	NL2                           = 0x8000
++	NL3                           = 0xc000
++	NLDLY                         = 0x4000
++	NOFLSH                        = 0x80
++	NOFLUSH                       = 0x80000000
++	OCRNL                         = 0x8
++	OFDEL                         = 0x80
++	OFILL                         = 0x40
++	OLCUC                         = 0x2
++	ONLCR                         = 0x4
++	ONLRET                        = 0x20
++	ONOCR                         = 0x10
++	ONOEOT                        = 0x80000
++	OPOST                         = 0x1
++	OXTABS                        = 0x40000
++	O_ACCMODE                     = 0x23
++	O_APPEND                      = 0x8
++	O_CIO                         = 0x80
++	O_CIOR                        = 0x800000000
++	O_CLOEXEC                     = 0x800000
++	O_CREAT                       = 0x100
++	O_DEFER                       = 0x2000
++	O_DELAY                       = 0x4000
++	O_DIRECT                      = 0x8000000
++	O_DIRECTORY                   = 0x80000
++	O_DSYNC                       = 0x400000
++	O_EFSOFF                      = 0x400000000
++	O_EFSON                       = 0x200000000
++	O_EXCL                        = 0x400
++	O_EXEC                        = 0x20
++	O_LARGEFILE                   = 0x4000000
++	O_NDELAY                      = 0x8000
++	O_NOCACHE                     = 0x100000
++	O_NOCTTY                      = 0x800
++	O_NOFOLLOW                    = 0x1000000
++	O_NONBLOCK                    = 0x4
++	O_NONE                        = 0x3
++	O_NSHARE                      = 0x10000
++	O_RAW                         = 0x100000000
++	O_RDONLY                      = 0x0
++	O_RDWR                        = 0x2
++	O_RSHARE                      = 0x1000
++	O_RSYNC                       = 0x200000
++	O_SEARCH                      = 0x20
++	O_SNAPSHOT                    = 0x40
++	O_SYNC                        = 0x10
++	O_TRUNC                       = 0x200
++	O_TTY_INIT                    = 0x0
++	O_WRONLY                      = 0x1
++	PARENB                        = 0x100
++	PAREXT                        = 0x100000
++	PARMRK                        = 0x8
++	PARODD                        = 0x200
++	PENDIN                        = 0x20000000
++	PRIO_PGRP                     = 0x1
++	PRIO_PROCESS                  = 0x0
++	PRIO_USER                     = 0x2
++	PROT_EXEC                     = 0x4
++	PROT_NONE                     = 0x0
++	PROT_READ                     = 0x1
++	PROT_WRITE                    = 0x2
++	PR_64BIT                      = 0x20
++	PR_ADDR                       = 0x2
++	PR_ARGEXT                     = 0x400
++	PR_ATOMIC                     = 0x1
++	PR_CONNREQUIRED               = 0x4
++	PR_FASTHZ                     = 0x5
++	PR_INP                        = 0x40
++	PR_INTRLEVEL                  = 0x8000
++	PR_MLS                        = 0x100
++	PR_MLS_1_LABEL                = 0x200
++	PR_NOEOR                      = 0x4000
++	PR_RIGHTS                     = 0x10
++	PR_SLOWHZ                     = 0x2
++	PR_WANTRCVD                   = 0x8
++	RLIMIT_AS                     = 0x6
++	RLIMIT_CORE                   = 0x4
++	RLIMIT_CPU                    = 0x0
++	RLIMIT_DATA                   = 0x2
++	RLIMIT_FSIZE                  = 0x1
++	RLIMIT_NOFILE                 = 0x7
++	RLIMIT_NPROC                  = 0x9
++	RLIMIT_RSS                    = 0x5
++	RLIMIT_STACK                  = 0x3
++	RLIM_INFINITY                 = 0x7fffffff
++	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_DOWNSTREAM                = 0x100
++	RTA_DST                       = 0x1
++	RTA_GATEWAY                   = 0x2
++	RTA_GENMASK                   = 0x8
++	RTA_IFA                       = 0x20
++	RTA_IFP                       = 0x10
++	RTA_NETMASK                   = 0x4
++	RTC_IA64                      = 0x3
++	RTC_POWER                     = 0x1
++	RTC_POWER_PC                  = 0x2
++	RTF_ACTIVE_DGD                = 0x1000000
++	RTF_BCE                       = 0x80000
++	RTF_BLACKHOLE                 = 0x1000
++	RTF_BROADCAST                 = 0x400000
++	RTF_BUL                       = 0x2000
++	RTF_CLONE                     = 0x10000
++	RTF_CLONED                    = 0x20000
++	RTF_CLONING                   = 0x100
++	RTF_DONE                      = 0x40
++	RTF_DYNAMIC                   = 0x10
++	RTF_FREE_IN_PROG              = 0x4000000
++	RTF_GATEWAY                   = 0x2
++	RTF_HOST                      = 0x4
++	RTF_LLINFO                    = 0x400
++	RTF_LOCAL                     = 0x200000
++	RTF_MASK                      = 0x80
++	RTF_MODIFIED                  = 0x20
++	RTF_MULTICAST                 = 0x800000
++	RTF_PERMANENT6                = 0x8000000
++	RTF_PINNED                    = 0x100000
++	RTF_PROTO1                    = 0x8000
++	RTF_PROTO2                    = 0x4000
++	RTF_PROTO3                    = 0x40000
++	RTF_REJECT                    = 0x8
++	RTF_SMALLMTU                  = 0x40000
++	RTF_STATIC                    = 0x800
++	RTF_STOPSRCH                  = 0x2000000
++	RTF_UNREACHABLE               = 0x10000000
++	RTF_UP                        = 0x1
++	RTF_XRESOLVE                  = 0x200
++	RTM_ADD                       = 0x1
++	RTM_CHANGE                    = 0x3
++	RTM_DELADDR                   = 0xd
++	RTM_DELETE                    = 0x2
++	RTM_EXPIRE                    = 0xf
++	RTM_GET                       = 0x4
++	RTM_GETNEXT                   = 0x11
++	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_RTLOST                    = 0x10
++	RTM_RTTUNIT                   = 0xf4240
++	RTM_SAMEADDR                  = 0x12
++	RTM_SET                       = 0x13
++	RTM_VERSION                   = 0x2
++	RTM_VERSION_GR                = 0x4
++	RTM_VERSION_GR_COMPAT         = 0x3
++	RTM_VERSION_POLICY            = 0x5
++	RTM_VERSION_POLICY_EXT        = 0x6
++	RTM_VERSION_POLICY_PRFN       = 0x7
++	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
++	RUSAGE_THREAD                 = 0x1
++	SCM_RIGHTS                    = 0x1
++	SHUT_RD                       = 0x0
++	SHUT_RDWR                     = 0x2
++	SHUT_WR                       = 0x1
++	SIGMAX64                      = 0xff
++	SIGQUEUE_MAX                  = 0x20
++	SIOCADDIFVIPA                 = 0x20006942
++	SIOCADDMTU                    = -0x7ffb9690
++	SIOCADDMULTI                  = -0x7fdf96cf
++	SIOCADDNETID                  = -0x7fd796a9
++	SIOCADDRT                     = -0x7fcf8df6
++	SIOCAIFADDR                   = -0x7fbf96e6
++	SIOCATMARK                    = 0x40047307
++	SIOCDARP                      = -0x7fb396e0
++	SIOCDELIFVIPA                 = 0x20006943
++	SIOCDELMTU                    = -0x7ffb968f
++	SIOCDELMULTI                  = -0x7fdf96ce
++	SIOCDELPMTU                   = -0x7fd78ff6
++	SIOCDELRT                     = -0x7fcf8df5
++	SIOCDIFADDR                   = -0x7fd796e7
++	SIOCDNETOPT                   = -0x3ffe9680
++	SIOCDX25XLATE                 = -0x7fd7969b
++	SIOCFIFADDR                   = -0x7fdf966d
++	SIOCGARP                      = -0x3fb396da
++	SIOCGETMTUS                   = 0x2000696f
++	SIOCGETSGCNT                  = -0x3feb8acc
++	SIOCGETVIFCNT                 = -0x3feb8acd
++	SIOCGHIWAT                    = 0x40047301
++	SIOCGIFADDR                   = -0x3fd796df
++	SIOCGIFADDRS                  = 0x2000698c
++	SIOCGIFBAUDRATE               = -0x3fdf9669
++	SIOCGIFBRDADDR                = -0x3fd796dd
++	SIOCGIFCONF                   = -0x3ff796bb
++	SIOCGIFCONFGLOB               = -0x3ff79670
++	SIOCGIFDSTADDR                = -0x3fd796de
++	SIOCGIFFLAGS                  = -0x3fd796ef
++	SIOCGIFGIDLIST                = 0x20006968
++	SIOCGIFHWADDR                 = -0x3fab966b
++	SIOCGIFMETRIC                 = -0x3fd796e9
++	SIOCGIFMTU                    = -0x3fd796aa
++	SIOCGIFNETMASK                = -0x3fd796db
++	SIOCGIFOPTIONS                = -0x3fd796d6
++	SIOCGISNO                     = -0x3fd79695
++	SIOCGLOADF                    = -0x3ffb967e
++	SIOCGLOWAT                    = 0x40047303
++	SIOCGNETOPT                   = -0x3ffe96a5
++	SIOCGNETOPT1                  = -0x3fdf967f
++	SIOCGNMTUS                    = 0x2000696e
++	SIOCGPGRP                     = 0x40047309
++	SIOCGSIZIFCONF                = 0x4004696a
++	SIOCGSRCFILTER                = -0x3fe796cb
++	SIOCGTUNEPHASE                = -0x3ffb9676
++	SIOCGX25XLATE                 = -0x3fd7969c
++	SIOCIFATTACH                  = -0x7fdf9699
++	SIOCIFDETACH                  = -0x7fdf969a
++	SIOCIFGETPKEY                 = -0x7fdf969b
++	SIOCIF_ATM_DARP               = -0x7fdf9683
++	SIOCIF_ATM_DUMPARP            = -0x7fdf9685
++	SIOCIF_ATM_GARP               = -0x7fdf9682
++	SIOCIF_ATM_IDLE               = -0x7fdf9686
++	SIOCIF_ATM_SARP               = -0x7fdf9681
++	SIOCIF_ATM_SNMPARP            = -0x7fdf9687
++	SIOCIF_ATM_SVC                = -0x7fdf9684
++	SIOCIF_ATM_UBR                = -0x7fdf9688
++	SIOCIF_DEVHEALTH              = -0x7ffb966c
++	SIOCIF_IB_ARP_INCOMP          = -0x7fdf9677
++	SIOCIF_IB_ARP_TIMER           = -0x7fdf9678
++	SIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f
++	SIOCIF_IB_DEL_ARP             = -0x7fdf967f
++	SIOCIF_IB_DEL_PINFO           = -0x3fdf9670
++	SIOCIF_IB_DUMP_ARP            = -0x7fdf9680
++	SIOCIF_IB_GET_ARP             = -0x7fdf967e
++	SIOCIF_IB_GET_INFO            = -0x3f879675
++	SIOCIF_IB_GET_STATS           = -0x3f879672
++	SIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a
++	SIOCIF_IB_RESET_STATS         = -0x3f879671
++	SIOCIF_IB_RESIZE_CQ           = -0x7fdf9679
++	SIOCIF_IB_SET_ARP             = -0x7fdf967d
++	SIOCIF_IB_SET_PKEY            = -0x7fdf967c
++	SIOCIF_IB_SET_PORT            = -0x7fdf967b
++	SIOCIF_IB_SET_QKEY            = -0x7fdf9676
++	SIOCIF_IB_SET_QSIZE           = -0x7fdf967a
++	SIOCLISTIFVIPA                = 0x20006944
++	SIOCSARP                      = -0x7fb396e2
++	SIOCSHIWAT                    = 0x80047300
++	SIOCSIFADDR                   = -0x7fd796f4
++	SIOCSIFADDRORI                = -0x7fdb9673
++	SIOCSIFBRDADDR                = -0x7fd796ed
++	SIOCSIFDSTADDR                = -0x7fd796f2
++	SIOCSIFFLAGS                  = -0x7fd796f0
++	SIOCSIFGIDLIST                = 0x20006969
++	SIOCSIFMETRIC                 = -0x7fd796e8
++	SIOCSIFMTU                    = -0x7fd796a8
++	SIOCSIFNETDUMP                = -0x7fd796e4
++	SIOCSIFNETMASK                = -0x7fd796ea
++	SIOCSIFOPTIONS                = -0x7fd796d7
++	SIOCSIFSUBCHAN                = -0x7fd796e5
++	SIOCSISNO                     = -0x7fd79694
++	SIOCSLOADF                    = -0x3ffb967d
++	SIOCSLOWAT                    = 0x80047302
++	SIOCSNETOPT                   = -0x7ffe96a6
++	SIOCSPGRP                     = 0x80047308
++	SIOCSX25XLATE                 = -0x7fd7969d
++	SOCK_CONN_DGRAM               = 0x6
++	SOCK_DGRAM                    = 0x2
++	SOCK_RAW                      = 0x3
++	SOCK_RDM                      = 0x4
++	SOCK_SEQPACKET                = 0x5
++	SOCK_STREAM                   = 0x1
++	SOL_SOCKET                    = 0xffff
++	SOMAXCONN                     = 0x400
++	SO_ACCEPTCONN                 = 0x2
++	SO_AUDIT                      = 0x8000
++	SO_BROADCAST                  = 0x20
++	SO_CKSUMRECV                  = 0x800
++	SO_DEBUG                      = 0x1
++	SO_DONTROUTE                  = 0x10
++	SO_ERROR                      = 0x1007
++	SO_KEEPALIVE                  = 0x8
++	SO_KERNACCEPT                 = 0x2000
++	SO_LINGER                     = 0x80
++	SO_NOMULTIPATH                = 0x4000
++	SO_NOREUSEADDR                = 0x1000
++	SO_OOBINLINE                  = 0x100
++	SO_PEERID                     = 0x1009
++	SO_RCVBUF                     = 0x1002
++	SO_RCVLOWAT                   = 0x1004
++	SO_RCVTIMEO                   = 0x1006
++	SO_REUSEADDR                  = 0x4
++	SO_REUSEPORT                  = 0x200
++	SO_SNDBUF                     = 0x1001
++	SO_SNDLOWAT                   = 0x1003
++	SO_SNDTIMEO                   = 0x1005
++	SO_TIMESTAMPNS                = 0x100a
++	SO_TYPE                       = 0x1008
++	SO_USELOOPBACK                = 0x40
++	SO_USE_IFBUFS                 = 0x400
++	S_BANDURG                     = 0x400
++	S_EMODFMT                     = 0x3c000000
++	S_ENFMT                       = 0x400
++	S_ERROR                       = 0x100
++	S_HANGUP                      = 0x200
++	S_HIPRI                       = 0x2
++	S_ICRYPTO                     = 0x80000
++	S_IEXEC                       = 0x40
++	S_IFBLK                       = 0x6000
++	S_IFCHR                       = 0x2000
++	S_IFDIR                       = 0x4000
++	S_IFIFO                       = 0x1000
++	S_IFJOURNAL                   = 0x10000
++	S_IFLNK                       = 0xa000
++	S_IFMPX                       = 0x2200
++	S_IFMT                        = 0xf000
++	S_IFPDIR                      = 0x4000000
++	S_IFPSDIR                     = 0x8000000
++	S_IFPSSDIR                    = 0xc000000
++	S_IFREG                       = 0x8000
++	S_IFSOCK                      = 0xc000
++	S_IFSYSEA                     = 0x30000000
++	S_INPUT                       = 0x1
++	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_ITCB                        = 0x1000000
++	S_ITP                         = 0x800000
++	S_IWGRP                       = 0x10
++	S_IWOTH                       = 0x2
++	S_IWRITE                      = 0x80
++	S_IWUSR                       = 0x80
++	S_IXACL                       = 0x2000000
++	S_IXATTR                      = 0x40000
++	S_IXGRP                       = 0x8
++	S_IXINTERFACE                 = 0x100000
++	S_IXMOD                       = 0x40000000
++	S_IXOTH                       = 0x1
++	S_IXUSR                       = 0x40
++	S_MSG                         = 0x8
++	S_OUTPUT                      = 0x4
++	S_RDBAND                      = 0x20
++	S_RDNORM                      = 0x10
++	S_RESERVED1                   = 0x20000
++	S_RESERVED2                   = 0x200000
++	S_RESERVED3                   = 0x400000
++	S_RESERVED4                   = 0x80000000
++	S_RESFMT1                     = 0x10000000
++	S_RESFMT10                    = 0x34000000
++	S_RESFMT11                    = 0x38000000
++	S_RESFMT12                    = 0x3c000000
++	S_RESFMT2                     = 0x14000000
++	S_RESFMT3                     = 0x18000000
++	S_RESFMT4                     = 0x1c000000
++	S_RESFMT5                     = 0x20000000
++	S_RESFMT6                     = 0x24000000
++	S_RESFMT7                     = 0x28000000
++	S_RESFMT8                     = 0x2c000000
++	S_WRBAND                      = 0x80
++	S_WRNORM                      = 0x40
++	TAB0                          = 0x0
++	TAB1                          = 0x400
++	TAB2                          = 0x800
++	TAB3                          = 0xc00
++	TABDLY                        = 0xc00
++	TCFLSH                        = 0x540c
++	TCGETA                        = 0x5405
++	TCGETS                        = 0x5401
++	TCIFLUSH                      = 0x0
++	TCIOFF                        = 0x2
++	TCIOFLUSH                     = 0x2
++	TCION                         = 0x3
++	TCOFLUSH                      = 0x1
++	TCOOFF                        = 0x0
++	TCOON                         = 0x1
++	TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800
++	TCP_ACLADD                    = 0x23
++	TCP_ACLBIND                   = 0x26
++	TCP_ACLCLEAR                  = 0x22
++	TCP_ACLDEL                    = 0x24
++	TCP_ACLDENY                   = 0x8
++	TCP_ACLFLUSH                  = 0x21
++	TCP_ACLGID                    = 0x1
++	TCP_ACLLS                     = 0x25
++	TCP_ACLSUBNET                 = 0x4
++	TCP_ACLUID                    = 0x2
++	TCP_CWND_DF                   = 0x16
++	TCP_CWND_IF                   = 0x15
++	TCP_DELAY_ACK_FIN             = 0x2
++	TCP_DELAY_ACK_SYN             = 0x1
++	TCP_FASTNAME                  = 0x101080a
++	TCP_KEEPCNT                   = 0x13
++	TCP_KEEPIDLE                  = 0x11
++	TCP_KEEPINTVL                 = 0x12
++	TCP_LSPRIV                    = 0x29
++	TCP_LUID                      = 0x20
++	TCP_MAXBURST                  = 0x8
++	TCP_MAXDF                     = 0x64
++	TCP_MAXIF                     = 0x64
++	TCP_MAXSEG                    = 0x2
++	TCP_MAXWIN                    = 0xffff
++	TCP_MAXWINDOWSCALE            = 0xe
++	TCP_MAX_SACK                  = 0x4
++	TCP_MSS                       = 0x5b4
++	TCP_NODELAY                   = 0x1
++	TCP_NODELAYACK                = 0x14
++	TCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19
++	TCP_NOREDUCE_CWND_IN_FRXMT    = 0x18
++	TCP_NOTENTER_SSTART           = 0x17
++	TCP_OPT                       = 0x19
++	TCP_RFC1323                   = 0x4
++	TCP_SETPRIV                   = 0x27
++	TCP_STDURG                    = 0x10
++	TCP_TIMESTAMP_OPTLEN          = 0xc
++	TCP_UNSETPRIV                 = 0x28
++	TCSAFLUSH                     = 0x2
++	TCSBRK                        = 0x5409
++	TCSETA                        = 0x5406
++	TCSETAF                       = 0x5408
++	TCSETAW                       = 0x5407
++	TCSETS                        = 0x5402
++	TCSETSF                       = 0x5404
++	TCSETSW                       = 0x5403
++	TCXONC                        = 0x540b
++	TIMER_ABSTIME                 = 0x3e7
++	TIMER_MAX                     = 0x20
++	TIOC                          = 0x5400
++	TIOCCBRK                      = 0x2000747a
++	TIOCCDTR                      = 0x20007478
++	TIOCCONS                      = 0x80047462
++	TIOCEXCL                      = 0x2000740d
++	TIOCFLUSH                     = 0x80047410
++	TIOCGETC                      = 0x40067412
++	TIOCGETD                      = 0x40047400
++	TIOCGETP                      = 0x40067408
++	TIOCGLTC                      = 0x40067474
++	TIOCGPGRP                     = 0x40047477
++	TIOCGSID                      = 0x40047448
++	TIOCGSIZE                     = 0x40087468
++	TIOCGWINSZ                    = 0x40087468
++	TIOCHPCL                      = 0x20007402
++	TIOCLBIC                      = 0x8004747e
++	TIOCLBIS                      = 0x8004747f
++	TIOCLGET                      = 0x4004747c
++	TIOCLSET                      = 0x8004747d
++	TIOCMBIC                      = 0x8004746b
++	TIOCMBIS                      = 0x8004746c
++	TIOCMGET                      = 0x4004746a
++	TIOCMIWAIT                    = 0x80047464
++	TIOCMODG                      = 0x40047403
++	TIOCMODS                      = 0x80047404
++	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_NOSTOP                = 0x10
++	TIOCPKT_START                 = 0x8
++	TIOCPKT_STOP                  = 0x4
++	TIOCREMOTE                    = 0x80047469
++	TIOCSBRK                      = 0x2000747b
++	TIOCSDTR                      = 0x20007479
++	TIOCSETC                      = 0x80067411
++	TIOCSETD                      = 0x80047401
++	TIOCSETN                      = 0x8006740a
++	TIOCSETP                      = 0x80067409
++	TIOCSLTC                      = 0x80067475
++	TIOCSPGRP                     = 0x80047476
++	TIOCSSIZE                     = 0x80087467
++	TIOCSTART                     = 0x2000746e
++	TIOCSTI                       = 0x80017472
++	TIOCSTOP                      = 0x2000746f
++	TIOCSWINSZ                    = 0x80087467
++	TIOCUCNTL                     = 0x80047466
++	TOSTOP                        = 0x10000
++	UTIME_NOW                     = -0x2
++	UTIME_OMIT                    = -0x3
++	VDISCRD                       = 0xc
++	VDSUSP                        = 0xa
++	VEOF                          = 0x4
++	VEOL                          = 0x5
++	VEOL2                         = 0x6
++	VERASE                        = 0x2
++	VINTR                         = 0x0
++	VKILL                         = 0x3
++	VLNEXT                        = 0xe
++	VMIN                          = 0x4
++	VQUIT                         = 0x1
++	VREPRINT                      = 0xb
++	VSTART                        = 0x7
++	VSTOP                         = 0x8
++	VSTRT                         = 0x7
++	VSUSP                         = 0x9
++	VT0                           = 0x0
++	VT1                           = 0x8000
++	VTDELAY                       = 0x2000
++	VTDLY                         = 0x8000
++	VTIME                         = 0x5
++	VWERSE                        = 0xd
++	WPARSTART                     = 0x1
++	WPARSTOP                      = 0x2
++	WPARTTYNAME                   = "Global"
++	XCASE                         = 0x4
++	XTABS                         = 0xc00
++	_FDATAFLUSH                   = 0x2000000000
++)
++
++// Errors
++const (
++	E2BIG           = syscall.Errno(0x7)
++	EACCES          = syscall.Errno(0xd)
++	EADDRINUSE      = syscall.Errno(0x43)
++	EADDRNOTAVAIL   = syscall.Errno(0x44)
++	EAFNOSUPPORT    = syscall.Errno(0x42)
++	EAGAIN          = syscall.Errno(0xb)
++	EALREADY        = syscall.Errno(0x38)
++	EBADF           = syscall.Errno(0x9)
++	EBADMSG         = syscall.Errno(0x78)
++	EBUSY           = syscall.Errno(0x10)
++	ECANCELED       = syscall.Errno(0x75)
++	ECHILD          = syscall.Errno(0xa)
++	ECHRNG          = syscall.Errno(0x25)
++	ECLONEME        = syscall.Errno(0x52)
++	ECONNABORTED    = syscall.Errno(0x48)
++	ECONNREFUSED    = syscall.Errno(0x4f)
++	ECONNRESET      = syscall.Errno(0x49)
++	ECORRUPT        = syscall.Errno(0x59)
++	EDEADLK         = syscall.Errno(0x2d)
++	EDESTADDREQ     = syscall.Errno(0x3a)
++	EDESTADDRREQ    = syscall.Errno(0x3a)
++	EDIST           = syscall.Errno(0x35)
++	EDOM            = syscall.Errno(0x21)
++	EDQUOT          = syscall.Errno(0x58)
++	EEXIST          = syscall.Errno(0x11)
++	EFAULT          = syscall.Errno(0xe)
++	EFBIG           = syscall.Errno(0x1b)
++	EFORMAT         = syscall.Errno(0x30)
++	EHOSTDOWN       = syscall.Errno(0x50)
++	EHOSTUNREACH    = syscall.Errno(0x51)
++	EIDRM           = syscall.Errno(0x24)
++	EILSEQ          = syscall.Errno(0x74)
++	EINPROGRESS     = syscall.Errno(0x37)
++	EINTR           = syscall.Errno(0x4)
++	EINVAL          = syscall.Errno(0x16)
++	EIO             = syscall.Errno(0x5)
++	EISCONN         = syscall.Errno(0x4b)
++	EISDIR          = syscall.Errno(0x15)
++	EL2HLT          = syscall.Errno(0x2c)
++	EL2NSYNC        = syscall.Errno(0x26)
++	EL3HLT          = syscall.Errno(0x27)
++	EL3RST          = syscall.Errno(0x28)
++	ELNRNG          = syscall.Errno(0x29)
++	ELOOP           = syscall.Errno(0x55)
++	EMEDIA          = syscall.Errno(0x6e)
++	EMFILE          = syscall.Errno(0x18)
++	EMLINK          = syscall.Errno(0x1f)
++	EMSGSIZE        = syscall.Errno(0x3b)
++	EMULTIHOP       = syscall.Errno(0x7d)
++	ENAMETOOLONG    = syscall.Errno(0x56)
++	ENETDOWN        = syscall.Errno(0x45)
++	ENETRESET       = syscall.Errno(0x47)
++	ENETUNREACH     = syscall.Errno(0x46)
++	ENFILE          = syscall.Errno(0x17)
++	ENOATTR         = syscall.Errno(0x70)
++	ENOBUFS         = syscall.Errno(0x4a)
++	ENOCONNECT      = syscall.Errno(0x32)
++	ENOCSI          = syscall.Errno(0x2b)
++	ENODATA         = syscall.Errno(0x7a)
++	ENODEV          = syscall.Errno(0x13)
++	ENOENT          = syscall.Errno(0x2)
++	ENOEXEC         = syscall.Errno(0x8)
++	ENOLCK          = syscall.Errno(0x31)
++	ENOLINK         = syscall.Errno(0x7e)
++	ENOMEM          = syscall.Errno(0xc)
++	ENOMSG          = syscall.Errno(0x23)
++	ENOPROTOOPT     = syscall.Errno(0x3d)
++	ENOSPC          = syscall.Errno(0x1c)
++	ENOSR           = syscall.Errno(0x76)
++	ENOSTR          = syscall.Errno(0x7b)
++	ENOSYS          = syscall.Errno(0x6d)
++	ENOTBLK         = syscall.Errno(0xf)
++	ENOTCONN        = syscall.Errno(0x4c)
++	ENOTDIR         = syscall.Errno(0x14)
++	ENOTEMPTY       = syscall.Errno(0x11)
++	ENOTREADY       = syscall.Errno(0x2e)
++	ENOTRECOVERABLE = syscall.Errno(0x5e)
++	ENOTRUST        = syscall.Errno(0x72)
++	ENOTSOCK        = syscall.Errno(0x39)
++	ENOTSUP         = syscall.Errno(0x7c)
++	ENOTTY          = syscall.Errno(0x19)
++	ENXIO           = syscall.Errno(0x6)
++	EOPNOTSUPP      = syscall.Errno(0x40)
++	EOVERFLOW       = syscall.Errno(0x7f)
++	EOWNERDEAD      = syscall.Errno(0x5f)
++	EPERM           = syscall.Errno(0x1)
++	EPFNOSUPPORT    = syscall.Errno(0x41)
++	EPIPE           = syscall.Errno(0x20)
++	EPROCLIM        = syscall.Errno(0x53)
++	EPROTO          = syscall.Errno(0x79)
++	EPROTONOSUPPORT = syscall.Errno(0x3e)
++	EPROTOTYPE      = syscall.Errno(0x3c)
++	ERANGE          = syscall.Errno(0x22)
++	EREMOTE         = syscall.Errno(0x5d)
++	ERESTART        = syscall.Errno(0x52)
++	EROFS           = syscall.Errno(0x1e)
++	ESAD            = syscall.Errno(0x71)
++	ESHUTDOWN       = syscall.Errno(0x4d)
++	ESOCKTNOSUPPORT = syscall.Errno(0x3f)
++	ESOFT           = syscall.Errno(0x6f)
++	ESPIPE          = syscall.Errno(0x1d)
++	ESRCH           = syscall.Errno(0x3)
++	ESTALE          = syscall.Errno(0x34)
++	ESYSERROR       = syscall.Errno(0x5a)
++	ETIME           = syscall.Errno(0x77)
++	ETIMEDOUT       = syscall.Errno(0x4e)
++	ETOOMANYREFS    = syscall.Errno(0x73)
++	ETXTBSY         = syscall.Errno(0x1a)
++	EUNATCH         = syscall.Errno(0x2a)
++	EUSERS          = syscall.Errno(0x54)
++	EWOULDBLOCK     = syscall.Errno(0xb)
++	EWRPROTECT      = syscall.Errno(0x2f)
++	EXDEV           = syscall.Errno(0x12)
++)
++
++// Signals
++const (
++	SIGABRT     = syscall.Signal(0x6)
++	SIGAIO      = syscall.Signal(0x17)
++	SIGALRM     = syscall.Signal(0xe)
++	SIGALRM1    = syscall.Signal(0x26)
++	SIGBUS      = syscall.Signal(0xa)
++	SIGCAPI     = syscall.Signal(0x31)
++	SIGCHLD     = syscall.Signal(0x14)
++	SIGCLD      = syscall.Signal(0x14)
++	SIGCONT     = syscall.Signal(0x13)
++	SIGCPUFAIL  = syscall.Signal(0x3b)
++	SIGDANGER   = syscall.Signal(0x21)
++	SIGEMT      = syscall.Signal(0x7)
++	SIGFPE      = syscall.Signal(0x8)
++	SIGGRANT    = syscall.Signal(0x3c)
++	SIGHUP      = syscall.Signal(0x1)
++	SIGILL      = syscall.Signal(0x4)
++	SIGINT      = syscall.Signal(0x2)
++	SIGIO       = syscall.Signal(0x17)
++	SIGIOINT    = syscall.Signal(0x10)
++	SIGIOT      = syscall.Signal(0x6)
++	SIGKAP      = syscall.Signal(0x3c)
++	SIGKILL     = syscall.Signal(0x9)
++	SIGLOST     = syscall.Signal(0x6)
++	SIGMAX      = syscall.Signal(0x3f)
++	SIGMAX32    = syscall.Signal(0x3f)
++	SIGMIGRATE  = syscall.Signal(0x23)
++	SIGMSG      = syscall.Signal(0x1b)
++	SIGPIPE     = syscall.Signal(0xd)
++	SIGPOLL     = syscall.Signal(0x17)
++	SIGPRE      = syscall.Signal(0x24)
++	SIGPROF     = syscall.Signal(0x20)
++	SIGPTY      = syscall.Signal(0x17)
++	SIGPWR      = syscall.Signal(0x1d)
++	SIGQUIT     = syscall.Signal(0x3)
++	SIGRECONFIG = syscall.Signal(0x3a)
++	SIGRETRACT  = syscall.Signal(0x3d)
++	SIGSAK      = syscall.Signal(0x3f)
++	SIGSEGV     = syscall.Signal(0xb)
++	SIGSOUND    = syscall.Signal(0x3e)
++	SIGSTOP     = syscall.Signal(0x11)
++	SIGSYS      = syscall.Signal(0xc)
++	SIGSYSERROR = syscall.Signal(0x30)
++	SIGTALRM    = syscall.Signal(0x26)
++	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)
++	SIGVIRT     = syscall.Signal(0x25)
++	SIGVTALRM   = syscall.Signal(0x22)
++	SIGWAITING  = syscall.Signal(0x27)
++	SIGWINCH    = syscall.Signal(0x1c)
++	SIGXCPU     = syscall.Signal(0x18)
++	SIGXFSZ     = syscall.Signal(0x19)
++)
++
++// Error table
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "not owner"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "I/O error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "arg list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file number"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EWOULDBLOCK", "resource temporarily unavailable"},
++	{12, "ENOMEM", "not enough space"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "ENOTEMPTY", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "file table overflow"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "not a typewriter"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "deadlock condition if locked"},
++	{46, "ENOTREADY", "device not ready"},
++	{47, "EWRPROTECT", "write-protected media"},
++	{48, "EFORMAT", "unformatted or incompatible media"},
++	{49, "ENOLCK", "no locks available"},
++	{50, "ENOCONNECT", "cannot Establish Connection"},
++	{52, "ESTALE", "missing file or filesystem"},
++	{53, "EDIST", "requests blocked by Administrator"},
++	{55, "EINPROGRESS", "operation now in progress"},
++	{56, "EALREADY", "operation already in progress"},
++	{57, "ENOTSOCK", "socket operation on non-socket"},
++	{58, "EDESTADDREQ", "destination address required"},
++	{59, "EMSGSIZE", "message too long"},
++	{60, "EPROTOTYPE", "protocol wrong type for socket"},
++	{61, "ENOPROTOOPT", "protocol not available"},
++	{62, "EPROTONOSUPPORT", "protocol not supported"},
++	{63, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{64, "EOPNOTSUPP", "operation not supported on socket"},
++	{65, "EPFNOSUPPORT", "protocol family not supported"},
++	{66, "EAFNOSUPPORT", "addr family not supported by protocol"},
++	{67, "EADDRINUSE", "address already in use"},
++	{68, "EADDRNOTAVAIL", "can't assign requested address"},
++	{69, "ENETDOWN", "network is down"},
++	{70, "ENETUNREACH", "network is unreachable"},
++	{71, "ENETRESET", "network dropped connection on reset"},
++	{72, "ECONNABORTED", "software caused connection abort"},
++	{73, "ECONNRESET", "connection reset by peer"},
++	{74, "ENOBUFS", "no buffer space available"},
++	{75, "EISCONN", "socket is already connected"},
++	{76, "ENOTCONN", "socket is not connected"},
++	{77, "ESHUTDOWN", "can't send after socket shutdown"},
++	{78, "ETIMEDOUT", "connection timed out"},
++	{79, "ECONNREFUSED", "connection refused"},
++	{80, "EHOSTDOWN", "host is down"},
++	{81, "EHOSTUNREACH", "no route to host"},
++	{82, "ERESTART", "restart the system call"},
++	{83, "EPROCLIM", "too many processes"},
++	{84, "EUSERS", "too many users"},
++	{85, "ELOOP", "too many levels of symbolic links"},
++	{86, "ENAMETOOLONG", "file name too long"},
++	{88, "EDQUOT", "disk quota exceeded"},
++	{89, "ECORRUPT", "invalid file system control data detected"},
++	{90, "ESYSERROR", "for future use "},
++	{93, "EREMOTE", "item is not local to host"},
++	{94, "ENOTRECOVERABLE", "state not recoverable "},
++	{95, "EOWNERDEAD", "previous owner died "},
++	{109, "ENOSYS", "function not implemented"},
++	{110, "EMEDIA", "media surface error"},
++	{111, "ESOFT", "I/O completed, but needs relocation"},
++	{112, "ENOATTR", "no attribute found"},
++	{113, "ESAD", "security Authentication Denied"},
++	{114, "ENOTRUST", "not a Trusted Program"},
++	{115, "ETOOMANYREFS", "too many references: can't splice"},
++	{116, "EILSEQ", "invalid wide character"},
++	{117, "ECANCELED", "asynchronous I/O cancelled"},
++	{118, "ENOSR", "out of STREAMS resources"},
++	{119, "ETIME", "system call timed out"},
++	{120, "EBADMSG", "next message has wrong type"},
++	{121, "EPROTO", "error in protocol"},
++	{122, "ENODATA", "no message on stream head read q"},
++	{123, "ENOSTR", "fd not associated with a stream"},
++	{124, "ENOTSUP", "unsupported attribute value"},
++	{125, "EMULTIHOP", "multihop is not allowed"},
++	{126, "ENOLINK", "the server link has been severed"},
++	{127, "EOVERFLOW", "value too large to be stored in data type"},
++}
++
++// Signal table
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "IOT/Abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible/complete"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{27, "SIGMSG", "input device data"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGPWR", "power-failure"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGPROF", "profiling timer expired"},
++	{33, "SIGDANGER", "paging space low"},
++	{34, "SIGVTALRM", "virtual timer expired"},
++	{35, "SIGMIGRATE", "signal 35"},
++	{36, "SIGPRE", "signal 36"},
++	{37, "SIGVIRT", "signal 37"},
++	{38, "SIGTALRM", "signal 38"},
++	{39, "SIGWAITING", "signal 39"},
++	{48, "SIGSYSERROR", "signal 48"},
++	{49, "SIGCAPI", "signal 49"},
++	{58, "SIGRECONFIG", "signal 58"},
++	{59, "SIGCPUFAIL", "CPU Failure Predicted"},
++	{60, "SIGKAP", "monitor mode granted"},
++	{61, "SIGRETRACT", "monitor mode retracted"},
++	{62, "SIGSOUND", "sound completed"},
++	{63, "SIGSAK", "secure attention"},
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+new file mode 100644
+index 00000000..4fc8d306
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go
+@@ -0,0 +1,1385 @@
++// mkerrors.sh -maix64
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc64,aix
++
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- -maix64 _const.go
++
++package unix
++
++import "syscall"
++
++const (
++	AF_APPLETALK                  = 0x10
++	AF_BYPASS                     = 0x19
++	AF_CCITT                      = 0xa
++	AF_CHAOS                      = 0x5
++	AF_DATAKIT                    = 0x9
++	AF_DECnet                     = 0xc
++	AF_DLI                        = 0xd
++	AF_ECMA                       = 0x8
++	AF_HYLINK                     = 0xf
++	AF_IMPLINK                    = 0x3
++	AF_INET                       = 0x2
++	AF_INET6                      = 0x18
++	AF_INTF                       = 0x14
++	AF_ISO                        = 0x7
++	AF_LAT                        = 0xe
++	AF_LINK                       = 0x12
++	AF_LOCAL                      = 0x1
++	AF_MAX                        = 0x1e
++	AF_NDD                        = 0x17
++	AF_NETWARE                    = 0x16
++	AF_NS                         = 0x6
++	AF_OSI                        = 0x7
++	AF_PUP                        = 0x4
++	AF_RIF                        = 0x15
++	AF_ROUTE                      = 0x11
++	AF_SNA                        = 0xb
++	AF_UNIX                       = 0x1
++	AF_UNSPEC                     = 0x0
++	ALTWERASE                     = 0x400000
++	ARPHRD_802_3                  = 0x6
++	ARPHRD_802_5                  = 0x6
++	ARPHRD_ETHER                  = 0x1
++	ARPHRD_FDDI                   = 0x1
++	B0                            = 0x0
++	B110                          = 0x3
++	B1200                         = 0x9
++	B134                          = 0x4
++	B150                          = 0x5
++	B1800                         = 0xa
++	B19200                        = 0xe
++	B200                          = 0x6
++	B2400                         = 0xb
++	B300                          = 0x7
++	B38400                        = 0xf
++	B4800                         = 0xc
++	B50                           = 0x1
++	B600                          = 0x8
++	B75                           = 0x2
++	B9600                         = 0xd
++	BRKINT                        = 0x2
++	BS0                           = 0x0
++	BS1                           = 0x1000
++	BSDLY                         = 0x1000
++	CAP_AACCT                     = 0x6
++	CAP_ARM_APPLICATION           = 0x5
++	CAP_BYPASS_RAC_VMM            = 0x3
++	CAP_CLEAR                     = 0x0
++	CAP_CREDENTIALS               = 0x7
++	CAP_EFFECTIVE                 = 0x1
++	CAP_EWLM_AGENT                = 0x4
++	CAP_INHERITABLE               = 0x2
++	CAP_MAXIMUM                   = 0x7
++	CAP_NUMA_ATTACH               = 0x2
++	CAP_PERMITTED                 = 0x3
++	CAP_PROPAGATE                 = 0x1
++	CAP_PROPOGATE                 = 0x1
++	CAP_SET                       = 0x1
++	CBAUD                         = 0xf
++	CFLUSH                        = 0xf
++	CIBAUD                        = 0xf0000
++	CLOCAL                        = 0x800
++	CLOCK_MONOTONIC               = 0xa
++	CLOCK_PROCESS_CPUTIME_ID      = 0xb
++	CLOCK_REALTIME                = 0x9
++	CLOCK_THREAD_CPUTIME_ID       = 0xc
++	CR0                           = 0x0
++	CR1                           = 0x100
++	CR2                           = 0x200
++	CR3                           = 0x300
++	CRDLY                         = 0x300
++	CREAD                         = 0x80
++	CS5                           = 0x0
++	CS6                           = 0x10
++	CS7                           = 0x20
++	CS8                           = 0x30
++	CSIOCGIFCONF                  = -0x3fef96dc
++	CSIZE                         = 0x30
++	CSMAP_DIR                     = "/usr/lib/nls/csmap/"
++	CSTART                        = '\021'
++	CSTOP                         = '\023'
++	CSTOPB                        = 0x40
++	CSUSP                         = 0x1a
++	ECHO                          = 0x8
++	ECHOCTL                       = 0x20000
++	ECHOE                         = 0x10
++	ECHOK                         = 0x20
++	ECHOKE                        = 0x80000
++	ECHONL                        = 0x40
++	ECHOPRT                       = 0x40000
++	ECH_ICMPID                    = 0x2
++	ETHERNET_CSMACD               = 0x6
++	EVENP                         = 0x80
++	EXCONTINUE                    = 0x0
++	EXDLOK                        = 0x3
++	EXIO                          = 0x2
++	EXPGIO                        = 0x0
++	EXRESUME                      = 0x2
++	EXRETURN                      = 0x1
++	EXSIG                         = 0x4
++	EXTA                          = 0xe
++	EXTB                          = 0xf
++	EXTRAP                        = 0x1
++	EYEC_RTENTRYA                 = 0x257274656e747241
++	EYEC_RTENTRYF                 = 0x257274656e747246
++	E_ACC                         = 0x0
++	FD_CLOEXEC                    = 0x1
++	FD_SETSIZE                    = 0xfffe
++	FF0                           = 0x0
++	FF1                           = 0x2000
++	FFDLY                         = 0x2000
++	FLUSHBAND                     = 0x40
++	FLUSHLOW                      = 0x8
++	FLUSHO                        = 0x100000
++	FLUSHR                        = 0x1
++	FLUSHRW                       = 0x3
++	FLUSHW                        = 0x2
++	F_CLOSEM                      = 0xa
++	F_DUP2FD                      = 0xe
++	F_DUPFD                       = 0x0
++	F_GETFD                       = 0x1
++	F_GETFL                       = 0x3
++	F_GETLK                       = 0xb
++	F_GETLK64                     = 0xb
++	F_GETOWN                      = 0x8
++	F_LOCK                        = 0x1
++	F_OK                          = 0x0
++	F_RDLCK                       = 0x1
++	F_SETFD                       = 0x2
++	F_SETFL                       = 0x4
++	F_SETLK                       = 0xc
++	F_SETLK64                     = 0xc
++	F_SETLKW                      = 0xd
++	F_SETLKW64                    = 0xd
++	F_SETOWN                      = 0x9
++	F_TEST                        = 0x3
++	F_TLOCK                       = 0x2
++	F_TSTLK                       = 0xf
++	F_ULOCK                       = 0x0
++	F_UNLCK                       = 0x3
++	F_WRLCK                       = 0x2
++	HUPCL                         = 0x400
++	IBSHIFT                       = 0x10
++	ICANON                        = 0x2
++	ICMP6_FILTER                  = 0x26
++	ICMP6_SEC_SEND_DEL            = 0x46
++	ICMP6_SEC_SEND_GET            = 0x47
++	ICMP6_SEC_SEND_SET            = 0x44
++	ICMP6_SEC_SEND_SET_CGA_ADDR   = 0x45
++	ICRNL                         = 0x100
++	IEXTEN                        = 0x200000
++	IFA_FIRSTALIAS                = 0x2000
++	IFA_ROUTE                     = 0x1
++	IFF_64BIT                     = 0x4000000
++	IFF_ALLCAST                   = 0x20000
++	IFF_ALLMULTI                  = 0x200
++	IFF_BPF                       = 0x8000000
++	IFF_BRIDGE                    = 0x40000
++	IFF_BROADCAST                 = 0x2
++	IFF_CANTCHANGE                = 0x80c52
++	IFF_CHECKSUM_OFFLOAD          = 0x10000000
++	IFF_D1                        = 0x8000
++	IFF_D2                        = 0x4000
++	IFF_D3                        = 0x2000
++	IFF_D4                        = 0x1000
++	IFF_DEBUG                     = 0x4
++	IFF_DEVHEALTH                 = 0x4000
++	IFF_DO_HW_LOOPBACK            = 0x10000
++	IFF_GROUP_ROUTING             = 0x2000000
++	IFF_IFBUFMGT                  = 0x800000
++	IFF_LINK0                     = 0x100000
++	IFF_LINK1                     = 0x200000
++	IFF_LINK2                     = 0x400000
++	IFF_LOOPBACK                  = 0x8
++	IFF_MULTICAST                 = 0x80000
++	IFF_NOARP                     = 0x80
++	IFF_NOECHO                    = 0x800
++	IFF_NOTRAILERS                = 0x20
++	IFF_OACTIVE                   = 0x400
++	IFF_POINTOPOINT               = 0x10
++	IFF_PROMISC                   = 0x100
++	IFF_PSEG                      = 0x40000000
++	IFF_RUNNING                   = 0x40
++	IFF_SIMPLEX                   = 0x800
++	IFF_SNAP                      = 0x8000
++	IFF_TCP_DISABLE_CKSUM         = 0x20000000
++	IFF_TCP_NOCKSUM               = 0x1000000
++	IFF_UP                        = 0x1
++	IFF_VIPA                      = 0x80000000
++	IFNAMSIZ                      = 0x10
++	IFO_FLUSH                     = 0x1
++	IFT_1822                      = 0x2
++	IFT_AAL5                      = 0x31
++	IFT_ARCNET                    = 0x23
++	IFT_ARCNETPLUS                = 0x24
++	IFT_ATM                       = 0x25
++	IFT_CEPT                      = 0x13
++	IFT_CLUSTER                   = 0x3e
++	IFT_DS3                       = 0x1e
++	IFT_EON                       = 0x19
++	IFT_ETHER                     = 0x6
++	IFT_FCS                       = 0x3a
++	IFT_FDDI                      = 0xf
++	IFT_FRELAY                    = 0x20
++	IFT_FRELAYDCE                 = 0x2c
++	IFT_GIFTUNNEL                 = 0x3c
++	IFT_HDH1822                   = 0x3
++	IFT_HF                        = 0x3d
++	IFT_HIPPI                     = 0x2f
++	IFT_HSSI                      = 0x2e
++	IFT_HY                        = 0xe
++	IFT_IB                        = 0xc7
++	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_SN                        = 0x38
++	IFT_SONET                     = 0x27
++	IFT_SONETPATH                 = 0x32
++	IFT_SONETVT                   = 0x33
++	IFT_SP                        = 0x39
++	IFT_STARLAN                   = 0xb
++	IFT_T1                        = 0x12
++	IFT_TUNNEL                    = 0x3b
++	IFT_ULTRA                     = 0x1d
++	IFT_V35                       = 0x2d
++	IFT_VIPA                      = 0x37
++	IFT_X25                       = 0x5
++	IFT_X25DDN                    = 0x4
++	IFT_X25PLE                    = 0x28
++	IFT_XETHER                    = 0x1a
++	IGNBRK                        = 0x1
++	IGNCR                         = 0x80
++	IGNPAR                        = 0x4
++	IMAXBEL                       = 0x10000
++	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_USE                        = 0x1
++	IPPROTO_AH                    = 0x33
++	IPPROTO_BIP                   = 0x53
++	IPPROTO_DSTOPTS               = 0x3c
++	IPPROTO_EGP                   = 0x8
++	IPPROTO_EON                   = 0x50
++	IPPROTO_ESP                   = 0x32
++	IPPROTO_FRAGMENT              = 0x2c
++	IPPROTO_GGP                   = 0x3
++	IPPROTO_GIF                   = 0x8c
++	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_LOCAL                 = 0x3f
++	IPPROTO_MAX                   = 0x100
++	IPPROTO_MH                    = 0x87
++	IPPROTO_NONE                  = 0x3b
++	IPPROTO_PUP                   = 0xc
++	IPPROTO_QOS                   = 0x2d
++	IPPROTO_RAW                   = 0xff
++	IPPROTO_ROUTING               = 0x2b
++	IPPROTO_RSVP                  = 0x2e
++	IPPROTO_SCTP                  = 0x84
++	IPPROTO_TCP                   = 0x6
++	IPPROTO_TP                    = 0x1d
++	IPPROTO_UDP                   = 0x11
++	IPV6_ADDRFORM                 = 0x16
++	IPV6_ADDR_PREFERENCES         = 0x4a
++	IPV6_ADD_MEMBERSHIP           = 0xc
++	IPV6_AIXRAWSOCKET             = 0x39
++	IPV6_CHECKSUM                 = 0x27
++	IPV6_DONTFRAG                 = 0x2d
++	IPV6_DROP_MEMBERSHIP          = 0xd
++	IPV6_DSTOPTS                  = 0x36
++	IPV6_FLOWINFO_FLOWLABEL       = 0xffffff
++	IPV6_FLOWINFO_PRIFLOW         = 0xfffffff
++	IPV6_FLOWINFO_PRIORITY        = 0xf000000
++	IPV6_FLOWINFO_SRFLAG          = 0x10000000
++	IPV6_FLOWINFO_VERSION         = 0xf0000000
++	IPV6_HOPLIMIT                 = 0x28
++	IPV6_HOPOPTS                  = 0x34
++	IPV6_JOIN_GROUP               = 0xc
++	IPV6_LEAVE_GROUP              = 0xd
++	IPV6_MIPDSTOPTS               = 0x36
++	IPV6_MULTICAST_HOPS           = 0xa
++	IPV6_MULTICAST_IF             = 0x9
++	IPV6_MULTICAST_LOOP           = 0xb
++	IPV6_NEXTHOP                  = 0x30
++	IPV6_NOPROBE                  = 0x1c
++	IPV6_PATHMTU                  = 0x2e
++	IPV6_PKTINFO                  = 0x21
++	IPV6_PKTOPTIONS               = 0x24
++	IPV6_PRIORITY_10              = 0xa000000
++	IPV6_PRIORITY_11              = 0xb000000
++	IPV6_PRIORITY_12              = 0xc000000
++	IPV6_PRIORITY_13              = 0xd000000
++	IPV6_PRIORITY_14              = 0xe000000
++	IPV6_PRIORITY_15              = 0xf000000
++	IPV6_PRIORITY_8               = 0x8000000
++	IPV6_PRIORITY_9               = 0x9000000
++	IPV6_PRIORITY_BULK            = 0x4000000
++	IPV6_PRIORITY_CONTROL         = 0x7000000
++	IPV6_PRIORITY_FILLER          = 0x1000000
++	IPV6_PRIORITY_INTERACTIVE     = 0x6000000
++	IPV6_PRIORITY_RESERVED1       = 0x3000000
++	IPV6_PRIORITY_RESERVED2       = 0x5000000
++	IPV6_PRIORITY_UNATTENDED      = 0x2000000
++	IPV6_PRIORITY_UNCHARACTERIZED = 0x0
++	IPV6_RECVDSTOPTS              = 0x38
++	IPV6_RECVHOPLIMIT             = 0x29
++	IPV6_RECVHOPOPTS              = 0x35
++	IPV6_RECVHOPS                 = 0x22
++	IPV6_RECVIF                   = 0x1e
++	IPV6_RECVPATHMTU              = 0x2f
++	IPV6_RECVPKTINFO              = 0x23
++	IPV6_RECVRTHDR                = 0x33
++	IPV6_RECVSRCRT                = 0x1d
++	IPV6_RECVTCLASS               = 0x2a
++	IPV6_RTHDR                    = 0x32
++	IPV6_RTHDRDSTOPTS             = 0x37
++	IPV6_RTHDR_TYPE_0             = 0x0
++	IPV6_RTHDR_TYPE_2             = 0x2
++	IPV6_SENDIF                   = 0x1f
++	IPV6_SRFLAG_LOOSE             = 0x0
++	IPV6_SRFLAG_STRICT            = 0x10000000
++	IPV6_TCLASS                   = 0x2b
++	IPV6_TOKEN_LENGTH             = 0x40
++	IPV6_UNICAST_HOPS             = 0x4
++	IPV6_USE_MIN_MTU              = 0x2c
++	IPV6_V6ONLY                   = 0x25
++	IPV6_VERSION                  = 0x60000000
++	IP_ADDRFORM                   = 0x16
++	IP_ADD_MEMBERSHIP             = 0xc
++	IP_ADD_SOURCE_MEMBERSHIP      = 0x3c
++	IP_BLOCK_SOURCE               = 0x3a
++	IP_BROADCAST_IF               = 0x10
++	IP_CACHE_LINE_SIZE            = 0x80
++	IP_DEFAULT_MULTICAST_LOOP     = 0x1
++	IP_DEFAULT_MULTICAST_TTL      = 0x1
++	IP_DF                         = 0x4000
++	IP_DHCPMODE                   = 0x11
++	IP_DONTFRAG                   = 0x19
++	IP_DROP_MEMBERSHIP            = 0xd
++	IP_DROP_SOURCE_MEMBERSHIP     = 0x3d
++	IP_FINDPMTU                   = 0x1a
++	IP_HDRINCL                    = 0x2
++	IP_INC_MEMBERSHIPS            = 0x14
++	IP_INIT_MEMBERSHIP            = 0x14
++	IP_MAXPACKET                  = 0xffff
++	IP_MF                         = 0x2000
++	IP_MSS                        = 0x240
++	IP_MULTICAST_HOPS             = 0xa
++	IP_MULTICAST_IF               = 0x9
++	IP_MULTICAST_LOOP             = 0xb
++	IP_MULTICAST_TTL              = 0xa
++	IP_OPT                        = 0x1b
++	IP_OPTIONS                    = 0x1
++	IP_PMTUAGE                    = 0x1b
++	IP_RECVDSTADDR                = 0x7
++	IP_RECVIF                     = 0x14
++	IP_RECVIFINFO                 = 0xf
++	IP_RECVINTERFACE              = 0x20
++	IP_RECVMACHDR                 = 0xe
++	IP_RECVOPTS                   = 0x5
++	IP_RECVRETOPTS                = 0x6
++	IP_RECVTTL                    = 0x22
++	IP_RETOPTS                    = 0x8
++	IP_SOURCE_FILTER              = 0x48
++	IP_TOS                        = 0x3
++	IP_TTL                        = 0x4
++	IP_UNBLOCK_SOURCE             = 0x3b
++	IP_UNICAST_HOPS               = 0x4
++	ISIG                          = 0x1
++	ISTRIP                        = 0x20
++	IUCLC                         = 0x800
++	IXANY                         = 0x1000
++	IXOFF                         = 0x400
++	IXON                          = 0x200
++	I_FLUSH                       = 0x20005305
++	LNOFLSH                       = 0x8000
++	LOCK_EX                       = 0x2
++	LOCK_NB                       = 0x4
++	LOCK_SH                       = 0x1
++	LOCK_UN                       = 0x8
++	MADV_DONTNEED                 = 0x4
++	MADV_NORMAL                   = 0x0
++	MADV_RANDOM                   = 0x1
++	MADV_SEQUENTIAL               = 0x2
++	MADV_SPACEAVAIL               = 0x5
++	MADV_WILLNEED                 = 0x3
++	MAP_ANON                      = 0x10
++	MAP_ANONYMOUS                 = 0x10
++	MAP_FILE                      = 0x0
++	MAP_FIXED                     = 0x100
++	MAP_PRIVATE                   = 0x2
++	MAP_SHARED                    = 0x1
++	MAP_TYPE                      = 0xf0
++	MAP_VARIABLE                  = 0x0
++	MCAST_BLOCK_SOURCE            = 0x40
++	MCAST_EXCLUDE                 = 0x2
++	MCAST_INCLUDE                 = 0x1
++	MCAST_JOIN_GROUP              = 0x3e
++	MCAST_JOIN_SOURCE_GROUP       = 0x42
++	MCAST_LEAVE_GROUP             = 0x3f
++	MCAST_LEAVE_SOURCE_GROUP      = 0x43
++	MCAST_SOURCE_FILTER           = 0x49
++	MCAST_UNBLOCK_SOURCE          = 0x41
++	MCL_CURRENT                   = 0x100
++	MCL_FUTURE                    = 0x200
++	MSG_ANY                       = 0x4
++	MSG_ARGEXT                    = 0x400
++	MSG_BAND                      = 0x2
++	MSG_COMPAT                    = 0x8000
++	MSG_CTRUNC                    = 0x20
++	MSG_DONTROUTE                 = 0x4
++	MSG_EOR                       = 0x8
++	MSG_HIPRI                     = 0x1
++	MSG_MAXIOVLEN                 = 0x10
++	MSG_MPEG2                     = 0x80
++	MSG_NONBLOCK                  = 0x4000
++	MSG_NOSIGNAL                  = 0x100
++	MSG_OOB                       = 0x1
++	MSG_PEEK                      = 0x2
++	MSG_TRUNC                     = 0x10
++	MSG_WAITALL                   = 0x40
++	MSG_WAITFORONE                = 0x200
++	MS_ASYNC                      = 0x10
++	MS_EINTR                      = 0x80
++	MS_INVALIDATE                 = 0x40
++	MS_PER_SEC                    = 0x3e8
++	MS_SYNC                       = 0x20
++	NFDBITS                       = 0x40
++	NL0                           = 0x0
++	NL1                           = 0x4000
++	NL2                           = 0x8000
++	NL3                           = 0xc000
++	NLDLY                         = 0x4000
++	NOFLSH                        = 0x80
++	NOFLUSH                       = 0x80000000
++	OCRNL                         = 0x8
++	OFDEL                         = 0x80
++	OFILL                         = 0x40
++	OLCUC                         = 0x2
++	ONLCR                         = 0x4
++	ONLRET                        = 0x20
++	ONOCR                         = 0x10
++	ONOEOT                        = 0x80000
++	OPOST                         = 0x1
++	OXTABS                        = 0x40000
++	O_ACCMODE                     = 0x23
++	O_APPEND                      = 0x8
++	O_CIO                         = 0x80
++	O_CIOR                        = 0x800000000
++	O_CLOEXEC                     = 0x800000
++	O_CREAT                       = 0x100
++	O_DEFER                       = 0x2000
++	O_DELAY                       = 0x4000
++	O_DIRECT                      = 0x8000000
++	O_DIRECTORY                   = 0x80000
++	O_DSYNC                       = 0x400000
++	O_EFSOFF                      = 0x400000000
++	O_EFSON                       = 0x200000000
++	O_EXCL                        = 0x400
++	O_EXEC                        = 0x20
++	O_LARGEFILE                   = 0x4000000
++	O_NDELAY                      = 0x8000
++	O_NOCACHE                     = 0x100000
++	O_NOCTTY                      = 0x800
++	O_NOFOLLOW                    = 0x1000000
++	O_NONBLOCK                    = 0x4
++	O_NONE                        = 0x3
++	O_NSHARE                      = 0x10000
++	O_RAW                         = 0x100000000
++	O_RDONLY                      = 0x0
++	O_RDWR                        = 0x2
++	O_RSHARE                      = 0x1000
++	O_RSYNC                       = 0x200000
++	O_SEARCH                      = 0x20
++	O_SNAPSHOT                    = 0x40
++	O_SYNC                        = 0x10
++	O_TRUNC                       = 0x200
++	O_TTY_INIT                    = 0x0
++	O_WRONLY                      = 0x1
++	PARENB                        = 0x100
++	PAREXT                        = 0x100000
++	PARMRK                        = 0x8
++	PARODD                        = 0x200
++	PENDIN                        = 0x20000000
++	PRIO_PGRP                     = 0x1
++	PRIO_PROCESS                  = 0x0
++	PRIO_USER                     = 0x2
++	PROT_EXEC                     = 0x4
++	PROT_NONE                     = 0x0
++	PROT_READ                     = 0x1
++	PROT_WRITE                    = 0x2
++	PR_64BIT                      = 0x20
++	PR_ADDR                       = 0x2
++	PR_ARGEXT                     = 0x400
++	PR_ATOMIC                     = 0x1
++	PR_CONNREQUIRED               = 0x4
++	PR_FASTHZ                     = 0x5
++	PR_INP                        = 0x40
++	PR_INTRLEVEL                  = 0x8000
++	PR_MLS                        = 0x100
++	PR_MLS_1_LABEL                = 0x200
++	PR_NOEOR                      = 0x4000
++	PR_RIGHTS                     = 0x10
++	PR_SLOWHZ                     = 0x2
++	PR_WANTRCVD                   = 0x8
++	RLIMIT_AS                     = 0x6
++	RLIMIT_CORE                   = 0x4
++	RLIMIT_CPU                    = 0x0
++	RLIMIT_DATA                   = 0x2
++	RLIMIT_FSIZE                  = 0x1
++	RLIMIT_NOFILE                 = 0x7
++	RLIMIT_NPROC                  = 0x9
++	RLIMIT_RSS                    = 0x5
++	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_DOWNSTREAM                = 0x100
++	RTA_DST                       = 0x1
++	RTA_GATEWAY                   = 0x2
++	RTA_GENMASK                   = 0x8
++	RTA_IFA                       = 0x20
++	RTA_IFP                       = 0x10
++	RTA_NETMASK                   = 0x4
++	RTC_IA64                      = 0x3
++	RTC_POWER                     = 0x1
++	RTC_POWER_PC                  = 0x2
++	RTF_ACTIVE_DGD                = 0x1000000
++	RTF_BCE                       = 0x80000
++	RTF_BLACKHOLE                 = 0x1000
++	RTF_BROADCAST                 = 0x400000
++	RTF_BUL                       = 0x2000
++	RTF_CLONE                     = 0x10000
++	RTF_CLONED                    = 0x20000
++	RTF_CLONING                   = 0x100
++	RTF_DONE                      = 0x40
++	RTF_DYNAMIC                   = 0x10
++	RTF_FREE_IN_PROG              = 0x4000000
++	RTF_GATEWAY                   = 0x2
++	RTF_HOST                      = 0x4
++	RTF_LLINFO                    = 0x400
++	RTF_LOCAL                     = 0x200000
++	RTF_MASK                      = 0x80
++	RTF_MODIFIED                  = 0x20
++	RTF_MULTICAST                 = 0x800000
++	RTF_PERMANENT6                = 0x8000000
++	RTF_PINNED                    = 0x100000
++	RTF_PROTO1                    = 0x8000
++	RTF_PROTO2                    = 0x4000
++	RTF_PROTO3                    = 0x40000
++	RTF_REJECT                    = 0x8
++	RTF_SMALLMTU                  = 0x40000
++	RTF_STATIC                    = 0x800
++	RTF_STOPSRCH                  = 0x2000000
++	RTF_UNREACHABLE               = 0x10000000
++	RTF_UP                        = 0x1
++	RTF_XRESOLVE                  = 0x200
++	RTM_ADD                       = 0x1
++	RTM_CHANGE                    = 0x3
++	RTM_DELADDR                   = 0xd
++	RTM_DELETE                    = 0x2
++	RTM_EXPIRE                    = 0xf
++	RTM_GET                       = 0x4
++	RTM_GETNEXT                   = 0x11
++	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_RTLOST                    = 0x10
++	RTM_RTTUNIT                   = 0xf4240
++	RTM_SAMEADDR                  = 0x12
++	RTM_SET                       = 0x13
++	RTM_VERSION                   = 0x2
++	RTM_VERSION_GR                = 0x4
++	RTM_VERSION_GR_COMPAT         = 0x3
++	RTM_VERSION_POLICY            = 0x5
++	RTM_VERSION_POLICY_EXT        = 0x6
++	RTM_VERSION_POLICY_PRFN       = 0x7
++	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
++	RUSAGE_THREAD                 = 0x1
++	SCM_RIGHTS                    = 0x1
++	SHUT_RD                       = 0x0
++	SHUT_RDWR                     = 0x2
++	SHUT_WR                       = 0x1
++	SIGMAX64                      = 0xff
++	SIGQUEUE_MAX                  = 0x20
++	SIOCADDIFVIPA                 = 0x20006942
++	SIOCADDMTU                    = -0x7ffb9690
++	SIOCADDMULTI                  = -0x7fdf96cf
++	SIOCADDNETID                  = -0x7fd796a9
++	SIOCADDRT                     = -0x7fc78df6
++	SIOCAIFADDR                   = -0x7fbf96e6
++	SIOCATMARK                    = 0x40047307
++	SIOCDARP                      = -0x7fb396e0
++	SIOCDELIFVIPA                 = 0x20006943
++	SIOCDELMTU                    = -0x7ffb968f
++	SIOCDELMULTI                  = -0x7fdf96ce
++	SIOCDELPMTU                   = -0x7fd78ff6
++	SIOCDELRT                     = -0x7fc78df5
++	SIOCDIFADDR                   = -0x7fd796e7
++	SIOCDNETOPT                   = -0x3ffe9680
++	SIOCDX25XLATE                 = -0x7fd7969b
++	SIOCFIFADDR                   = -0x7fdf966d
++	SIOCGARP                      = -0x3fb396da
++	SIOCGETMTUS                   = 0x2000696f
++	SIOCGETSGCNT                  = -0x3feb8acc
++	SIOCGETVIFCNT                 = -0x3feb8acd
++	SIOCGHIWAT                    = 0x40047301
++	SIOCGIFADDR                   = -0x3fd796df
++	SIOCGIFADDRS                  = 0x2000698c
++	SIOCGIFBAUDRATE               = -0x3fdf9669
++	SIOCGIFBRDADDR                = -0x3fd796dd
++	SIOCGIFCONF                   = -0x3fef96bb
++	SIOCGIFCONFGLOB               = -0x3fef9670
++	SIOCGIFDSTADDR                = -0x3fd796de
++	SIOCGIFFLAGS                  = -0x3fd796ef
++	SIOCGIFGIDLIST                = 0x20006968
++	SIOCGIFHWADDR                 = -0x3fab966b
++	SIOCGIFMETRIC                 = -0x3fd796e9
++	SIOCGIFMTU                    = -0x3fd796aa
++	SIOCGIFNETMASK                = -0x3fd796db
++	SIOCGIFOPTIONS                = -0x3fd796d6
++	SIOCGISNO                     = -0x3fd79695
++	SIOCGLOADF                    = -0x3ffb967e
++	SIOCGLOWAT                    = 0x40047303
++	SIOCGNETOPT                   = -0x3ffe96a5
++	SIOCGNETOPT1                  = -0x3fdf967f
++	SIOCGNMTUS                    = 0x2000696e
++	SIOCGPGRP                     = 0x40047309
++	SIOCGSIZIFCONF                = 0x4004696a
++	SIOCGSRCFILTER                = -0x3fe796cb
++	SIOCGTUNEPHASE                = -0x3ffb9676
++	SIOCGX25XLATE                 = -0x3fd7969c
++	SIOCIFATTACH                  = -0x7fdf9699
++	SIOCIFDETACH                  = -0x7fdf969a
++	SIOCIFGETPKEY                 = -0x7fdf969b
++	SIOCIF_ATM_DARP               = -0x7fdf9683
++	SIOCIF_ATM_DUMPARP            = -0x7fdf9685
++	SIOCIF_ATM_GARP               = -0x7fdf9682
++	SIOCIF_ATM_IDLE               = -0x7fdf9686
++	SIOCIF_ATM_SARP               = -0x7fdf9681
++	SIOCIF_ATM_SNMPARP            = -0x7fdf9687
++	SIOCIF_ATM_SVC                = -0x7fdf9684
++	SIOCIF_ATM_UBR                = -0x7fdf9688
++	SIOCIF_DEVHEALTH              = -0x7ffb966c
++	SIOCIF_IB_ARP_INCOMP          = -0x7fdf9677
++	SIOCIF_IB_ARP_TIMER           = -0x7fdf9678
++	SIOCIF_IB_CLEAR_PINFO         = -0x3fdf966f
++	SIOCIF_IB_DEL_ARP             = -0x7fdf967f
++	SIOCIF_IB_DEL_PINFO           = -0x3fdf9670
++	SIOCIF_IB_DUMP_ARP            = -0x7fdf9680
++	SIOCIF_IB_GET_ARP             = -0x7fdf967e
++	SIOCIF_IB_GET_INFO            = -0x3f879675
++	SIOCIF_IB_GET_STATS           = -0x3f879672
++	SIOCIF_IB_NOTIFY_ADDR_REM     = -0x3f87966a
++	SIOCIF_IB_RESET_STATS         = -0x3f879671
++	SIOCIF_IB_RESIZE_CQ           = -0x7fdf9679
++	SIOCIF_IB_SET_ARP             = -0x7fdf967d
++	SIOCIF_IB_SET_PKEY            = -0x7fdf967c
++	SIOCIF_IB_SET_PORT            = -0x7fdf967b
++	SIOCIF_IB_SET_QKEY            = -0x7fdf9676
++	SIOCIF_IB_SET_QSIZE           = -0x7fdf967a
++	SIOCLISTIFVIPA                = 0x20006944
++	SIOCSARP                      = -0x7fb396e2
++	SIOCSHIWAT                    = 0xffffffff80047300
++	SIOCSIFADDR                   = -0x7fd796f4
++	SIOCSIFADDRORI                = -0x7fdb9673
++	SIOCSIFBRDADDR                = -0x7fd796ed
++	SIOCSIFDSTADDR                = -0x7fd796f2
++	SIOCSIFFLAGS                  = -0x7fd796f0
++	SIOCSIFGIDLIST                = 0x20006969
++	SIOCSIFMETRIC                 = -0x7fd796e8
++	SIOCSIFMTU                    = -0x7fd796a8
++	SIOCSIFNETDUMP                = -0x7fd796e4
++	SIOCSIFNETMASK                = -0x7fd796ea
++	SIOCSIFOPTIONS                = -0x7fd796d7
++	SIOCSIFSUBCHAN                = -0x7fd796e5
++	SIOCSISNO                     = -0x7fd79694
++	SIOCSLOADF                    = -0x3ffb967d
++	SIOCSLOWAT                    = 0xffffffff80047302
++	SIOCSNETOPT                   = -0x7ffe96a6
++	SIOCSPGRP                     = 0xffffffff80047308
++	SIOCSX25XLATE                 = -0x7fd7969d
++	SOCK_CONN_DGRAM               = 0x6
++	SOCK_DGRAM                    = 0x2
++	SOCK_RAW                      = 0x3
++	SOCK_RDM                      = 0x4
++	SOCK_SEQPACKET                = 0x5
++	SOCK_STREAM                   = 0x1
++	SOL_SOCKET                    = 0xffff
++	SOMAXCONN                     = 0x400
++	SO_ACCEPTCONN                 = 0x2
++	SO_AUDIT                      = 0x8000
++	SO_BROADCAST                  = 0x20
++	SO_CKSUMRECV                  = 0x800
++	SO_DEBUG                      = 0x1
++	SO_DONTROUTE                  = 0x10
++	SO_ERROR                      = 0x1007
++	SO_KEEPALIVE                  = 0x8
++	SO_KERNACCEPT                 = 0x2000
++	SO_LINGER                     = 0x80
++	SO_NOMULTIPATH                = 0x4000
++	SO_NOREUSEADDR                = 0x1000
++	SO_OOBINLINE                  = 0x100
++	SO_PEERID                     = 0x1009
++	SO_RCVBUF                     = 0x1002
++	SO_RCVLOWAT                   = 0x1004
++	SO_RCVTIMEO                   = 0x1006
++	SO_REUSEADDR                  = 0x4
++	SO_REUSEPORT                  = 0x200
++	SO_SNDBUF                     = 0x1001
++	SO_SNDLOWAT                   = 0x1003
++	SO_SNDTIMEO                   = 0x1005
++	SO_TIMESTAMPNS                = 0x100a
++	SO_TYPE                       = 0x1008
++	SO_USELOOPBACK                = 0x40
++	SO_USE_IFBUFS                 = 0x400
++	S_BANDURG                     = 0x400
++	S_EMODFMT                     = 0x3c000000
++	S_ENFMT                       = 0x400
++	S_ERROR                       = 0x100
++	S_HANGUP                      = 0x200
++	S_HIPRI                       = 0x2
++	S_ICRYPTO                     = 0x80000
++	S_IEXEC                       = 0x40
++	S_IFBLK                       = 0x6000
++	S_IFCHR                       = 0x2000
++	S_IFDIR                       = 0x4000
++	S_IFIFO                       = 0x1000
++	S_IFJOURNAL                   = 0x10000
++	S_IFLNK                       = 0xa000
++	S_IFMPX                       = 0x2200
++	S_IFMT                        = 0xf000
++	S_IFPDIR                      = 0x4000000
++	S_IFPSDIR                     = 0x8000000
++	S_IFPSSDIR                    = 0xc000000
++	S_IFREG                       = 0x8000
++	S_IFSOCK                      = 0xc000
++	S_IFSYSEA                     = 0x30000000
++	S_INPUT                       = 0x1
++	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_ITCB                        = 0x1000000
++	S_ITP                         = 0x800000
++	S_IWGRP                       = 0x10
++	S_IWOTH                       = 0x2
++	S_IWRITE                      = 0x80
++	S_IWUSR                       = 0x80
++	S_IXACL                       = 0x2000000
++	S_IXATTR                      = 0x40000
++	S_IXGRP                       = 0x8
++	S_IXINTERFACE                 = 0x100000
++	S_IXMOD                       = 0x40000000
++	S_IXOTH                       = 0x1
++	S_IXUSR                       = 0x40
++	S_MSG                         = 0x8
++	S_OUTPUT                      = 0x4
++	S_RDBAND                      = 0x20
++	S_RDNORM                      = 0x10
++	S_RESERVED1                   = 0x20000
++	S_RESERVED2                   = 0x200000
++	S_RESERVED3                   = 0x400000
++	S_RESERVED4                   = 0x80000000
++	S_RESFMT1                     = 0x10000000
++	S_RESFMT10                    = 0x34000000
++	S_RESFMT11                    = 0x38000000
++	S_RESFMT12                    = 0x3c000000
++	S_RESFMT2                     = 0x14000000
++	S_RESFMT3                     = 0x18000000
++	S_RESFMT4                     = 0x1c000000
++	S_RESFMT5                     = 0x20000000
++	S_RESFMT6                     = 0x24000000
++	S_RESFMT7                     = 0x28000000
++	S_RESFMT8                     = 0x2c000000
++	S_WRBAND                      = 0x80
++	S_WRNORM                      = 0x40
++	TAB0                          = 0x0
++	TAB1                          = 0x400
++	TAB2                          = 0x800
++	TAB3                          = 0xc00
++	TABDLY                        = 0xc00
++	TCFLSH                        = 0x540c
++	TCGETA                        = 0x5405
++	TCGETS                        = 0x5401
++	TCIFLUSH                      = 0x0
++	TCIOFF                        = 0x2
++	TCIOFLUSH                     = 0x2
++	TCION                         = 0x3
++	TCOFLUSH                      = 0x1
++	TCOOFF                        = 0x0
++	TCOON                         = 0x1
++	TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800
++	TCP_ACLADD                    = 0x23
++	TCP_ACLBIND                   = 0x26
++	TCP_ACLCLEAR                  = 0x22
++	TCP_ACLDEL                    = 0x24
++	TCP_ACLDENY                   = 0x8
++	TCP_ACLFLUSH                  = 0x21
++	TCP_ACLGID                    = 0x1
++	TCP_ACLLS                     = 0x25
++	TCP_ACLSUBNET                 = 0x4
++	TCP_ACLUID                    = 0x2
++	TCP_CWND_DF                   = 0x16
++	TCP_CWND_IF                   = 0x15
++	TCP_DELAY_ACK_FIN             = 0x2
++	TCP_DELAY_ACK_SYN             = 0x1
++	TCP_FASTNAME                  = 0x101080a
++	TCP_KEEPCNT                   = 0x13
++	TCP_KEEPIDLE                  = 0x11
++	TCP_KEEPINTVL                 = 0x12
++	TCP_LSPRIV                    = 0x29
++	TCP_LUID                      = 0x20
++	TCP_MAXBURST                  = 0x8
++	TCP_MAXDF                     = 0x64
++	TCP_MAXIF                     = 0x64
++	TCP_MAXSEG                    = 0x2
++	TCP_MAXWIN                    = 0xffff
++	TCP_MAXWINDOWSCALE            = 0xe
++	TCP_MAX_SACK                  = 0x4
++	TCP_MSS                       = 0x5b4
++	TCP_NODELAY                   = 0x1
++	TCP_NODELAYACK                = 0x14
++	TCP_NOREDUCE_CWND_EXIT_FRXMT  = 0x19
++	TCP_NOREDUCE_CWND_IN_FRXMT    = 0x18
++	TCP_NOTENTER_SSTART           = 0x17
++	TCP_OPT                       = 0x19
++	TCP_RFC1323                   = 0x4
++	TCP_SETPRIV                   = 0x27
++	TCP_STDURG                    = 0x10
++	TCP_TIMESTAMP_OPTLEN          = 0xc
++	TCP_UNSETPRIV                 = 0x28
++	TCSAFLUSH                     = 0x2
++	TCSBRK                        = 0x5409
++	TCSETA                        = 0x5406
++	TCSETAF                       = 0x5408
++	TCSETAW                       = 0x5407
++	TCSETS                        = 0x5402
++	TCSETSF                       = 0x5404
++	TCSETSW                       = 0x5403
++	TCXONC                        = 0x540b
++	TIMER_ABSTIME                 = 0x3e7
++	TIMER_MAX                     = 0x20
++	TIOC                          = 0x5400
++	TIOCCBRK                      = 0x2000747a
++	TIOCCDTR                      = 0x20007478
++	TIOCCONS                      = 0xffffffff80047462
++	TIOCEXCL                      = 0x2000740d
++	TIOCFLUSH                     = 0xffffffff80047410
++	TIOCGETC                      = 0x40067412
++	TIOCGETD                      = 0x40047400
++	TIOCGETP                      = 0x40067408
++	TIOCGLTC                      = 0x40067474
++	TIOCGPGRP                     = 0x40047477
++	TIOCGSID                      = 0x40047448
++	TIOCGSIZE                     = 0x40087468
++	TIOCGWINSZ                    = 0x40087468
++	TIOCHPCL                      = 0x20007402
++	TIOCLBIC                      = 0xffffffff8004747e
++	TIOCLBIS                      = 0xffffffff8004747f
++	TIOCLGET                      = 0x4004747c
++	TIOCLSET                      = 0xffffffff8004747d
++	TIOCMBIC                      = 0xffffffff8004746b
++	TIOCMBIS                      = 0xffffffff8004746c
++	TIOCMGET                      = 0x4004746a
++	TIOCMIWAIT                    = 0xffffffff80047464
++	TIOCMODG                      = 0x40047403
++	TIOCMODS                      = 0xffffffff80047404
++	TIOCMSET                      = 0xffffffff8004746d
++	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                       = 0xffffffff80047470
++	TIOCPKT_DATA                  = 0x0
++	TIOCPKT_DOSTOP                = 0x20
++	TIOCPKT_FLUSHREAD             = 0x1
++	TIOCPKT_FLUSHWRITE            = 0x2
++	TIOCPKT_NOSTOP                = 0x10
++	TIOCPKT_START                 = 0x8
++	TIOCPKT_STOP                  = 0x4
++	TIOCREMOTE                    = 0xffffffff80047469
++	TIOCSBRK                      = 0x2000747b
++	TIOCSDTR                      = 0x20007479
++	TIOCSETC                      = 0xffffffff80067411
++	TIOCSETD                      = 0xffffffff80047401
++	TIOCSETN                      = 0xffffffff8006740a
++	TIOCSETP                      = 0xffffffff80067409
++	TIOCSLTC                      = 0xffffffff80067475
++	TIOCSPGRP                     = 0xffffffff80047476
++	TIOCSSIZE                     = 0xffffffff80087467
++	TIOCSTART                     = 0x2000746e
++	TIOCSTI                       = 0xffffffff80017472
++	TIOCSTOP                      = 0x2000746f
++	TIOCSWINSZ                    = 0xffffffff80087467
++	TIOCUCNTL                     = 0xffffffff80047466
++	TOSTOP                        = 0x10000
++	UTIME_NOW                     = -0x2
++	UTIME_OMIT                    = -0x3
++	VDISCRD                       = 0xc
++	VDSUSP                        = 0xa
++	VEOF                          = 0x4
++	VEOL                          = 0x5
++	VEOL2                         = 0x6
++	VERASE                        = 0x2
++	VINTR                         = 0x0
++	VKILL                         = 0x3
++	VLNEXT                        = 0xe
++	VMIN                          = 0x4
++	VQUIT                         = 0x1
++	VREPRINT                      = 0xb
++	VSTART                        = 0x7
++	VSTOP                         = 0x8
++	VSTRT                         = 0x7
++	VSUSP                         = 0x9
++	VT0                           = 0x0
++	VT1                           = 0x8000
++	VTDELAY                       = 0x2000
++	VTDLY                         = 0x8000
++	VTIME                         = 0x5
++	VWERSE                        = 0xd
++	WPARSTART                     = 0x1
++	WPARSTOP                      = 0x2
++	WPARTTYNAME                   = "Global"
++	XCASE                         = 0x4
++	XTABS                         = 0xc00
++	_FDATAFLUSH                   = 0x2000000000
++)
++
++// Errors
++const (
++	E2BIG           = syscall.Errno(0x7)
++	EACCES          = syscall.Errno(0xd)
++	EADDRINUSE      = syscall.Errno(0x43)
++	EADDRNOTAVAIL   = syscall.Errno(0x44)
++	EAFNOSUPPORT    = syscall.Errno(0x42)
++	EAGAIN          = syscall.Errno(0xb)
++	EALREADY        = syscall.Errno(0x38)
++	EBADF           = syscall.Errno(0x9)
++	EBADMSG         = syscall.Errno(0x78)
++	EBUSY           = syscall.Errno(0x10)
++	ECANCELED       = syscall.Errno(0x75)
++	ECHILD          = syscall.Errno(0xa)
++	ECHRNG          = syscall.Errno(0x25)
++	ECLONEME        = syscall.Errno(0x52)
++	ECONNABORTED    = syscall.Errno(0x48)
++	ECONNREFUSED    = syscall.Errno(0x4f)
++	ECONNRESET      = syscall.Errno(0x49)
++	ECORRUPT        = syscall.Errno(0x59)
++	EDEADLK         = syscall.Errno(0x2d)
++	EDESTADDREQ     = syscall.Errno(0x3a)
++	EDESTADDRREQ    = syscall.Errno(0x3a)
++	EDIST           = syscall.Errno(0x35)
++	EDOM            = syscall.Errno(0x21)
++	EDQUOT          = syscall.Errno(0x58)
++	EEXIST          = syscall.Errno(0x11)
++	EFAULT          = syscall.Errno(0xe)
++	EFBIG           = syscall.Errno(0x1b)
++	EFORMAT         = syscall.Errno(0x30)
++	EHOSTDOWN       = syscall.Errno(0x50)
++	EHOSTUNREACH    = syscall.Errno(0x51)
++	EIDRM           = syscall.Errno(0x24)
++	EILSEQ          = syscall.Errno(0x74)
++	EINPROGRESS     = syscall.Errno(0x37)
++	EINTR           = syscall.Errno(0x4)
++	EINVAL          = syscall.Errno(0x16)
++	EIO             = syscall.Errno(0x5)
++	EISCONN         = syscall.Errno(0x4b)
++	EISDIR          = syscall.Errno(0x15)
++	EL2HLT          = syscall.Errno(0x2c)
++	EL2NSYNC        = syscall.Errno(0x26)
++	EL3HLT          = syscall.Errno(0x27)
++	EL3RST          = syscall.Errno(0x28)
++	ELNRNG          = syscall.Errno(0x29)
++	ELOOP           = syscall.Errno(0x55)
++	EMEDIA          = syscall.Errno(0x6e)
++	EMFILE          = syscall.Errno(0x18)
++	EMLINK          = syscall.Errno(0x1f)
++	EMSGSIZE        = syscall.Errno(0x3b)
++	EMULTIHOP       = syscall.Errno(0x7d)
++	ENAMETOOLONG    = syscall.Errno(0x56)
++	ENETDOWN        = syscall.Errno(0x45)
++	ENETRESET       = syscall.Errno(0x47)
++	ENETUNREACH     = syscall.Errno(0x46)
++	ENFILE          = syscall.Errno(0x17)
++	ENOATTR         = syscall.Errno(0x70)
++	ENOBUFS         = syscall.Errno(0x4a)
++	ENOCONNECT      = syscall.Errno(0x32)
++	ENOCSI          = syscall.Errno(0x2b)
++	ENODATA         = syscall.Errno(0x7a)
++	ENODEV          = syscall.Errno(0x13)
++	ENOENT          = syscall.Errno(0x2)
++	ENOEXEC         = syscall.Errno(0x8)
++	ENOLCK          = syscall.Errno(0x31)
++	ENOLINK         = syscall.Errno(0x7e)
++	ENOMEM          = syscall.Errno(0xc)
++	ENOMSG          = syscall.Errno(0x23)
++	ENOPROTOOPT     = syscall.Errno(0x3d)
++	ENOSPC          = syscall.Errno(0x1c)
++	ENOSR           = syscall.Errno(0x76)
++	ENOSTR          = syscall.Errno(0x7b)
++	ENOSYS          = syscall.Errno(0x6d)
++	ENOTBLK         = syscall.Errno(0xf)
++	ENOTCONN        = syscall.Errno(0x4c)
++	ENOTDIR         = syscall.Errno(0x14)
++	ENOTEMPTY       = syscall.Errno(0x11)
++	ENOTREADY       = syscall.Errno(0x2e)
++	ENOTRECOVERABLE = syscall.Errno(0x5e)
++	ENOTRUST        = syscall.Errno(0x72)
++	ENOTSOCK        = syscall.Errno(0x39)
++	ENOTSUP         = syscall.Errno(0x7c)
++	ENOTTY          = syscall.Errno(0x19)
++	ENXIO           = syscall.Errno(0x6)
++	EOPNOTSUPP      = syscall.Errno(0x40)
++	EOVERFLOW       = syscall.Errno(0x7f)
++	EOWNERDEAD      = syscall.Errno(0x5f)
++	EPERM           = syscall.Errno(0x1)
++	EPFNOSUPPORT    = syscall.Errno(0x41)
++	EPIPE           = syscall.Errno(0x20)
++	EPROCLIM        = syscall.Errno(0x53)
++	EPROTO          = syscall.Errno(0x79)
++	EPROTONOSUPPORT = syscall.Errno(0x3e)
++	EPROTOTYPE      = syscall.Errno(0x3c)
++	ERANGE          = syscall.Errno(0x22)
++	EREMOTE         = syscall.Errno(0x5d)
++	ERESTART        = syscall.Errno(0x52)
++	EROFS           = syscall.Errno(0x1e)
++	ESAD            = syscall.Errno(0x71)
++	ESHUTDOWN       = syscall.Errno(0x4d)
++	ESOCKTNOSUPPORT = syscall.Errno(0x3f)
++	ESOFT           = syscall.Errno(0x6f)
++	ESPIPE          = syscall.Errno(0x1d)
++	ESRCH           = syscall.Errno(0x3)
++	ESTALE          = syscall.Errno(0x34)
++	ESYSERROR       = syscall.Errno(0x5a)
++	ETIME           = syscall.Errno(0x77)
++	ETIMEDOUT       = syscall.Errno(0x4e)
++	ETOOMANYREFS    = syscall.Errno(0x73)
++	ETXTBSY         = syscall.Errno(0x1a)
++	EUNATCH         = syscall.Errno(0x2a)
++	EUSERS          = syscall.Errno(0x54)
++	EWOULDBLOCK     = syscall.Errno(0xb)
++	EWRPROTECT      = syscall.Errno(0x2f)
++	EXDEV           = syscall.Errno(0x12)
++)
++
++// Signals
++const (
++	SIGABRT     = syscall.Signal(0x6)
++	SIGAIO      = syscall.Signal(0x17)
++	SIGALRM     = syscall.Signal(0xe)
++	SIGALRM1    = syscall.Signal(0x26)
++	SIGBUS      = syscall.Signal(0xa)
++	SIGCAPI     = syscall.Signal(0x31)
++	SIGCHLD     = syscall.Signal(0x14)
++	SIGCLD      = syscall.Signal(0x14)
++	SIGCONT     = syscall.Signal(0x13)
++	SIGCPUFAIL  = syscall.Signal(0x3b)
++	SIGDANGER   = syscall.Signal(0x21)
++	SIGEMT      = syscall.Signal(0x7)
++	SIGFPE      = syscall.Signal(0x8)
++	SIGGRANT    = syscall.Signal(0x3c)
++	SIGHUP      = syscall.Signal(0x1)
++	SIGILL      = syscall.Signal(0x4)
++	SIGINT      = syscall.Signal(0x2)
++	SIGIO       = syscall.Signal(0x17)
++	SIGIOINT    = syscall.Signal(0x10)
++	SIGIOT      = syscall.Signal(0x6)
++	SIGKAP      = syscall.Signal(0x3c)
++	SIGKILL     = syscall.Signal(0x9)
++	SIGLOST     = syscall.Signal(0x6)
++	SIGMAX      = syscall.Signal(0xff)
++	SIGMAX32    = syscall.Signal(0x3f)
++	SIGMIGRATE  = syscall.Signal(0x23)
++	SIGMSG      = syscall.Signal(0x1b)
++	SIGPIPE     = syscall.Signal(0xd)
++	SIGPOLL     = syscall.Signal(0x17)
++	SIGPRE      = syscall.Signal(0x24)
++	SIGPROF     = syscall.Signal(0x20)
++	SIGPTY      = syscall.Signal(0x17)
++	SIGPWR      = syscall.Signal(0x1d)
++	SIGQUIT     = syscall.Signal(0x3)
++	SIGRECONFIG = syscall.Signal(0x3a)
++	SIGRETRACT  = syscall.Signal(0x3d)
++	SIGSAK      = syscall.Signal(0x3f)
++	SIGSEGV     = syscall.Signal(0xb)
++	SIGSOUND    = syscall.Signal(0x3e)
++	SIGSTOP     = syscall.Signal(0x11)
++	SIGSYS      = syscall.Signal(0xc)
++	SIGSYSERROR = syscall.Signal(0x30)
++	SIGTALRM    = syscall.Signal(0x26)
++	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)
++	SIGVIRT     = syscall.Signal(0x25)
++	SIGVTALRM   = syscall.Signal(0x22)
++	SIGWAITING  = syscall.Signal(0x27)
++	SIGWINCH    = syscall.Signal(0x1c)
++	SIGXCPU     = syscall.Signal(0x18)
++	SIGXFSZ     = syscall.Signal(0x19)
++)
++
++// Error table
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "not owner"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "I/O error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "arg list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file number"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EWOULDBLOCK", "resource temporarily unavailable"},
++	{12, "ENOMEM", "not enough space"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "ENOTEMPTY", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "file table overflow"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "not a typewriter"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "deadlock condition if locked"},
++	{46, "ENOTREADY", "device not ready"},
++	{47, "EWRPROTECT", "write-protected media"},
++	{48, "EFORMAT", "unformatted or incompatible media"},
++	{49, "ENOLCK", "no locks available"},
++	{50, "ENOCONNECT", "cannot Establish Connection"},
++	{52, "ESTALE", "missing file or filesystem"},
++	{53, "EDIST", "requests blocked by Administrator"},
++	{55, "EINPROGRESS", "operation now in progress"},
++	{56, "EALREADY", "operation already in progress"},
++	{57, "ENOTSOCK", "socket operation on non-socket"},
++	{58, "EDESTADDREQ", "destination address required"},
++	{59, "EMSGSIZE", "message too long"},
++	{60, "EPROTOTYPE", "protocol wrong type for socket"},
++	{61, "ENOPROTOOPT", "protocol not available"},
++	{62, "EPROTONOSUPPORT", "protocol not supported"},
++	{63, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{64, "EOPNOTSUPP", "operation not supported on socket"},
++	{65, "EPFNOSUPPORT", "protocol family not supported"},
++	{66, "EAFNOSUPPORT", "addr family not supported by protocol"},
++	{67, "EADDRINUSE", "address already in use"},
++	{68, "EADDRNOTAVAIL", "can't assign requested address"},
++	{69, "ENETDOWN", "network is down"},
++	{70, "ENETUNREACH", "network is unreachable"},
++	{71, "ENETRESET", "network dropped connection on reset"},
++	{72, "ECONNABORTED", "software caused connection abort"},
++	{73, "ECONNRESET", "connection reset by peer"},
++	{74, "ENOBUFS", "no buffer space available"},
++	{75, "EISCONN", "socket is already connected"},
++	{76, "ENOTCONN", "socket is not connected"},
++	{77, "ESHUTDOWN", "can't send after socket shutdown"},
++	{78, "ETIMEDOUT", "connection timed out"},
++	{79, "ECONNREFUSED", "connection refused"},
++	{80, "EHOSTDOWN", "host is down"},
++	{81, "EHOSTUNREACH", "no route to host"},
++	{82, "ERESTART", "restart the system call"},
++	{83, "EPROCLIM", "too many processes"},
++	{84, "EUSERS", "too many users"},
++	{85, "ELOOP", "too many levels of symbolic links"},
++	{86, "ENAMETOOLONG", "file name too long"},
++	{88, "EDQUOT", "disk quota exceeded"},
++	{89, "ECORRUPT", "invalid file system control data detected"},
++	{90, "ESYSERROR", "for future use "},
++	{93, "EREMOTE", "item is not local to host"},
++	{94, "ENOTRECOVERABLE", "state not recoverable "},
++	{95, "EOWNERDEAD", "previous owner died "},
++	{109, "ENOSYS", "function not implemented"},
++	{110, "EMEDIA", "media surface error"},
++	{111, "ESOFT", "I/O completed, but needs relocation"},
++	{112, "ENOATTR", "no attribute found"},
++	{113, "ESAD", "security Authentication Denied"},
++	{114, "ENOTRUST", "not a Trusted Program"},
++	{115, "ETOOMANYREFS", "too many references: can't splice"},
++	{116, "EILSEQ", "invalid wide character"},
++	{117, "ECANCELED", "asynchronous I/O cancelled"},
++	{118, "ENOSR", "out of STREAMS resources"},
++	{119, "ETIME", "system call timed out"},
++	{120, "EBADMSG", "next message has wrong type"},
++	{121, "EPROTO", "error in protocol"},
++	{122, "ENODATA", "no message on stream head read q"},
++	{123, "ENOSTR", "fd not associated with a stream"},
++	{124, "ENOTSUP", "unsupported attribute value"},
++	{125, "EMULTIHOP", "multihop is not allowed"},
++	{126, "ENOLINK", "the server link has been severed"},
++	{127, "EOVERFLOW", "value too large to be stored in data type"},
++}
++
++// Signal table
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "IOT/Abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible/complete"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{27, "SIGMSG", "input device data"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGPWR", "power-failure"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGPROF", "profiling timer expired"},
++	{33, "SIGDANGER", "paging space low"},
++	{34, "SIGVTALRM", "virtual timer expired"},
++	{35, "SIGMIGRATE", "signal 35"},
++	{36, "SIGPRE", "signal 36"},
++	{37, "SIGVIRT", "signal 37"},
++	{38, "SIGTALRM", "signal 38"},
++	{39, "SIGWAITING", "signal 39"},
++	{48, "SIGSYSERROR", "signal 48"},
++	{49, "SIGCAPI", "signal 49"},
++	{58, "SIGRECONFIG", "signal 58"},
++	{59, "SIGCPUFAIL", "CPU Failure Predicted"},
++	{60, "SIGGRANT", "monitor mode granted"},
++	{61, "SIGRETRACT", "monitor mode retracted"},
++	{62, "SIGSOUND", "sound completed"},
++	{63, "SIGMAX32", "secure attention"},
++	{255, "SIGMAX", "signal 255"},
++}
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
+index 1c68758b..6217cdba 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
+@@ -3,7 +3,7 @@
+ 
+ // +build 386,darwin
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+ 
+ package unix
+@@ -49,6 +49,86 @@ const (
+ 	AF_UNSPEC                         = 0x0
+ 	AF_UTUN                           = 0x26
+ 	ALTWERASE                         = 0x200
++	ATTR_BIT_MAP_COUNT                = 0x5
++	ATTR_CMN_ACCESSMASK               = 0x20000
++	ATTR_CMN_ACCTIME                  = 0x1000
++	ATTR_CMN_ADDEDTIME                = 0x10000000
++	ATTR_CMN_BKUPTIME                 = 0x2000
++	ATTR_CMN_CHGTIME                  = 0x800
++	ATTR_CMN_CRTIME                   = 0x200
++	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000
++	ATTR_CMN_DEVID                    = 0x2
++	ATTR_CMN_DOCUMENT_ID              = 0x100000
++	ATTR_CMN_ERROR                    = 0x20000000
++	ATTR_CMN_EXTENDED_SECURITY        = 0x400000
++	ATTR_CMN_FILEID                   = 0x2000000
++	ATTR_CMN_FLAGS                    = 0x40000
++	ATTR_CMN_FNDRINFO                 = 0x4000
++	ATTR_CMN_FSID                     = 0x4
++	ATTR_CMN_FULLPATH                 = 0x8000000
++	ATTR_CMN_GEN_COUNT                = 0x80000
++	ATTR_CMN_GRPID                    = 0x10000
++	ATTR_CMN_GRPUUID                  = 0x1000000
++	ATTR_CMN_MODTIME                  = 0x400
++	ATTR_CMN_NAME                     = 0x1
++	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000
++	ATTR_CMN_NAMEDATTRLIST            = 0x100000
++	ATTR_CMN_OBJID                    = 0x20
++	ATTR_CMN_OBJPERMANENTID           = 0x40
++	ATTR_CMN_OBJTAG                   = 0x10
++	ATTR_CMN_OBJTYPE                  = 0x8
++	ATTR_CMN_OWNERID                  = 0x8000
++	ATTR_CMN_PARENTID                 = 0x4000000
++	ATTR_CMN_PAROBJID                 = 0x80
++	ATTR_CMN_RETURNED_ATTRS           = 0x80000000
++	ATTR_CMN_SCRIPT                   = 0x100
++	ATTR_CMN_SETMASK                  = 0x41c7ff00
++	ATTR_CMN_USERACCESS               = 0x200000
++	ATTR_CMN_UUID                     = 0x800000
++	ATTR_CMN_VALIDMASK                = 0xffffffff
++	ATTR_CMN_VOLSETMASK               = 0x6700
++	ATTR_FILE_ALLOCSIZE               = 0x4
++	ATTR_FILE_CLUMPSIZE               = 0x10
++	ATTR_FILE_DATAALLOCSIZE           = 0x400
++	ATTR_FILE_DATAEXTENTS             = 0x800
++	ATTR_FILE_DATALENGTH              = 0x200
++	ATTR_FILE_DEVTYPE                 = 0x20
++	ATTR_FILE_FILETYPE                = 0x40
++	ATTR_FILE_FORKCOUNT               = 0x80
++	ATTR_FILE_FORKLIST                = 0x100
++	ATTR_FILE_IOBLOCKSIZE             = 0x8
++	ATTR_FILE_LINKCOUNT               = 0x1
++	ATTR_FILE_RSRCALLOCSIZE           = 0x2000
++	ATTR_FILE_RSRCEXTENTS             = 0x4000
++	ATTR_FILE_RSRCLENGTH              = 0x1000
++	ATTR_FILE_SETMASK                 = 0x20
++	ATTR_FILE_TOTALSIZE               = 0x2
++	ATTR_FILE_VALIDMASK               = 0x37ff
++	ATTR_VOL_ALLOCATIONCLUMP          = 0x40
++	ATTR_VOL_ATTRIBUTES               = 0x40000000
++	ATTR_VOL_CAPABILITIES             = 0x20000
++	ATTR_VOL_DIRCOUNT                 = 0x400
++	ATTR_VOL_ENCODINGSUSED            = 0x10000
++	ATTR_VOL_FILECOUNT                = 0x200
++	ATTR_VOL_FSTYPE                   = 0x1
++	ATTR_VOL_INFO                     = 0x80000000
++	ATTR_VOL_IOBLOCKSIZE              = 0x80
++	ATTR_VOL_MAXOBJCOUNT              = 0x800
++	ATTR_VOL_MINALLOCATION            = 0x20
++	ATTR_VOL_MOUNTEDDEVICE            = 0x8000
++	ATTR_VOL_MOUNTFLAGS               = 0x4000
++	ATTR_VOL_MOUNTPOINT               = 0x1000
++	ATTR_VOL_NAME                     = 0x2000
++	ATTR_VOL_OBJCOUNT                 = 0x100
++	ATTR_VOL_QUOTA_SIZE               = 0x10000000
++	ATTR_VOL_RESERVED_SIZE            = 0x20000000
++	ATTR_VOL_SETMASK                  = 0x80002000
++	ATTR_VOL_SIGNATURE                = 0x2
++	ATTR_VOL_SIZE                     = 0x4
++	ATTR_VOL_SPACEAVAIL               = 0x10
++	ATTR_VOL_SPACEFREE                = 0x8
++	ATTR_VOL_UUID                     = 0x40000
++	ATTR_VOL_VALIDMASK                = 0xf007ffff
+ 	B0                                = 0x0
+ 	B110                              = 0x6e
+ 	B115200                           = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DLT_A429                          = 0xb8
+@@ -390,6 +472,11 @@ const (
+ 	FF1                               = 0x4000
+ 	FFDLY                             = 0x4000
+ 	FLUSHO                            = 0x800000
++	FSOPT_ATTR_CMN_EXTENDED           = 0x20
++	FSOPT_NOFOLLOW                    = 0x1
++	FSOPT_NOINMEMUPDATE               = 0x2
++	FSOPT_PACK_INVAL_ATTRS            = 0x8
++	FSOPT_REPORT_FULLSIZE             = 0x4
+ 	F_ADDFILESIGS                     = 0x3d
+ 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+ 	F_ADDFILESIGS_RETURN              = 0x61
+@@ -425,6 +512,7 @@ const (
+ 	F_PATHPKG_CHECK                   = 0x34
+ 	F_PEOFPOSMODE                     = 0x3
+ 	F_PREALLOCATE                     = 0x2a
++	F_PUNCHHOLE                       = 0x63
+ 	F_RDADVISE                        = 0x2c
+ 	F_RDAHEAD                         = 0x2d
+ 	F_RDLCK                           = 0x1
+@@ -441,10 +529,12 @@ const (
+ 	F_SINGLE_WRITER                   = 0x4c
+ 	F_THAW_FS                         = 0x36
+ 	F_TRANSCODEKEY                    = 0x4b
++	F_TRIM_ACTIVE_FILE                = 0x64
+ 	F_UNLCK                           = 0x2
+ 	F_VOLPOSMODE                      = 0x4
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -681,6 +771,7 @@ const (
+ 	IPV6_FAITH                        = 0x1d
+ 	IPV6_FLOWINFO_MASK                = 0xffffff0f
+ 	IPV6_FLOWLABEL_MASK               = 0xffff0f00
++	IPV6_FLOW_ECN_MASK                = 0x300
+ 	IPV6_FRAGTTL                      = 0x3c
+ 	IPV6_FW_ADD                       = 0x1e
+ 	IPV6_FW_DEL                       = 0x1f
+@@ -771,6 +862,7 @@ const (
+ 	IP_RECVOPTS                       = 0x5
+ 	IP_RECVPKTINFO                    = 0x1a
+ 	IP_RECVRETOPTS                    = 0x6
++	IP_RECVTOS                        = 0x1b
+ 	IP_RECVTTL                        = 0x18
+ 	IP_RETOPTS                        = 0x8
+ 	IP_RF                             = 0x8000
+@@ -789,6 +881,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -884,6 +980,7 @@ const (
+ 	NET_RT_MAXID                      = 0xa
+ 	NET_RT_STAT                       = 0x4
+ 	NET_RT_TRASH                      = 0x5
++	NFDBITS                           = 0x20
+ 	NL0                               = 0x0
+ 	NL1                               = 0x100
+ 	NL2                               = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ 	WORDSIZE                          = 0x20
+ 	WSTOPPED                          = 0x8
+ 	WUNTRACED                         = 0x2
++	XATTR_CREATE                      = 0x2
++	XATTR_NODEFAULT                   = 0x10
++	XATTR_NOFOLLOW                    = 0x1
++	XATTR_NOSECURITY                  = 0x8
++	XATTR_REPLACE                     = 0x4
++	XATTR_SHOWCOMPRESSION             = 0x20
+ )
+ 
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "ENOTSUP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EPWROFF", "device power is off"},
++	{83, "EDEVERR", "device error"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EBADEXEC", "bad executable (or shared library)"},
++	{86, "EBADARCH", "bad CPU type in executable"},
++	{87, "ESHLIBVERS", "shared library version mismatch"},
++	{88, "EBADMACHO", "malformed Mach-o file"},
++	{89, "ECANCELED", "operation canceled"},
++	{90, "EIDRM", "identifier removed"},
++	{91, "ENOMSG", "no message of desired type"},
++	{92, "EILSEQ", "illegal byte sequence"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EBADMSG", "bad message"},
++	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++	{96, "ENODATA", "no message available on STREAM"},
++	{97, "ENOLINK", "ENOLINK (Reserved)"},
++	{98, "ENOSR", "no STREAM resources"},
++	{99, "ENOSTR", "not a STREAM"},
++	{100, "EPROTO", "protocol error"},
++	{101, "ETIME", "STREAM ioctl timeout"},
++	{102, "EOPNOTSUPP", "operation not supported on socket"},
++	{103, "ENOPOLICY", "policy not found"},
++	{104, "ENOTRECOVERABLE", "state not recoverable"},
++	{105, "EOWNERDEAD", "previous owner died"},
++	{106, "EQFULL", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "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
+index 48f63d4f..e3ff2ee3 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build amd64,darwin
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -49,6 +49,86 @@ const (
+ 	AF_UNSPEC                         = 0x0
+ 	AF_UTUN                           = 0x26
+ 	ALTWERASE                         = 0x200
++	ATTR_BIT_MAP_COUNT                = 0x5
++	ATTR_CMN_ACCESSMASK               = 0x20000
++	ATTR_CMN_ACCTIME                  = 0x1000
++	ATTR_CMN_ADDEDTIME                = 0x10000000
++	ATTR_CMN_BKUPTIME                 = 0x2000
++	ATTR_CMN_CHGTIME                  = 0x800
++	ATTR_CMN_CRTIME                   = 0x200
++	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000
++	ATTR_CMN_DEVID                    = 0x2
++	ATTR_CMN_DOCUMENT_ID              = 0x100000
++	ATTR_CMN_ERROR                    = 0x20000000
++	ATTR_CMN_EXTENDED_SECURITY        = 0x400000
++	ATTR_CMN_FILEID                   = 0x2000000
++	ATTR_CMN_FLAGS                    = 0x40000
++	ATTR_CMN_FNDRINFO                 = 0x4000
++	ATTR_CMN_FSID                     = 0x4
++	ATTR_CMN_FULLPATH                 = 0x8000000
++	ATTR_CMN_GEN_COUNT                = 0x80000
++	ATTR_CMN_GRPID                    = 0x10000
++	ATTR_CMN_GRPUUID                  = 0x1000000
++	ATTR_CMN_MODTIME                  = 0x400
++	ATTR_CMN_NAME                     = 0x1
++	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000
++	ATTR_CMN_NAMEDATTRLIST            = 0x100000
++	ATTR_CMN_OBJID                    = 0x20
++	ATTR_CMN_OBJPERMANENTID           = 0x40
++	ATTR_CMN_OBJTAG                   = 0x10
++	ATTR_CMN_OBJTYPE                  = 0x8
++	ATTR_CMN_OWNERID                  = 0x8000
++	ATTR_CMN_PARENTID                 = 0x4000000
++	ATTR_CMN_PAROBJID                 = 0x80
++	ATTR_CMN_RETURNED_ATTRS           = 0x80000000
++	ATTR_CMN_SCRIPT                   = 0x100
++	ATTR_CMN_SETMASK                  = 0x41c7ff00
++	ATTR_CMN_USERACCESS               = 0x200000
++	ATTR_CMN_UUID                     = 0x800000
++	ATTR_CMN_VALIDMASK                = 0xffffffff
++	ATTR_CMN_VOLSETMASK               = 0x6700
++	ATTR_FILE_ALLOCSIZE               = 0x4
++	ATTR_FILE_CLUMPSIZE               = 0x10
++	ATTR_FILE_DATAALLOCSIZE           = 0x400
++	ATTR_FILE_DATAEXTENTS             = 0x800
++	ATTR_FILE_DATALENGTH              = 0x200
++	ATTR_FILE_DEVTYPE                 = 0x20
++	ATTR_FILE_FILETYPE                = 0x40
++	ATTR_FILE_FORKCOUNT               = 0x80
++	ATTR_FILE_FORKLIST                = 0x100
++	ATTR_FILE_IOBLOCKSIZE             = 0x8
++	ATTR_FILE_LINKCOUNT               = 0x1
++	ATTR_FILE_RSRCALLOCSIZE           = 0x2000
++	ATTR_FILE_RSRCEXTENTS             = 0x4000
++	ATTR_FILE_RSRCLENGTH              = 0x1000
++	ATTR_FILE_SETMASK                 = 0x20
++	ATTR_FILE_TOTALSIZE               = 0x2
++	ATTR_FILE_VALIDMASK               = 0x37ff
++	ATTR_VOL_ALLOCATIONCLUMP          = 0x40
++	ATTR_VOL_ATTRIBUTES               = 0x40000000
++	ATTR_VOL_CAPABILITIES             = 0x20000
++	ATTR_VOL_DIRCOUNT                 = 0x400
++	ATTR_VOL_ENCODINGSUSED            = 0x10000
++	ATTR_VOL_FILECOUNT                = 0x200
++	ATTR_VOL_FSTYPE                   = 0x1
++	ATTR_VOL_INFO                     = 0x80000000
++	ATTR_VOL_IOBLOCKSIZE              = 0x80
++	ATTR_VOL_MAXOBJCOUNT              = 0x800
++	ATTR_VOL_MINALLOCATION            = 0x20
++	ATTR_VOL_MOUNTEDDEVICE            = 0x8000
++	ATTR_VOL_MOUNTFLAGS               = 0x4000
++	ATTR_VOL_MOUNTPOINT               = 0x1000
++	ATTR_VOL_NAME                     = 0x2000
++	ATTR_VOL_OBJCOUNT                 = 0x100
++	ATTR_VOL_QUOTA_SIZE               = 0x10000000
++	ATTR_VOL_RESERVED_SIZE            = 0x20000000
++	ATTR_VOL_SETMASK                  = 0x80002000
++	ATTR_VOL_SIGNATURE                = 0x2
++	ATTR_VOL_SIZE                     = 0x4
++	ATTR_VOL_SPACEAVAIL               = 0x10
++	ATTR_VOL_SPACEFREE                = 0x8
++	ATTR_VOL_UUID                     = 0x40000
++	ATTR_VOL_VALIDMASK                = 0xf007ffff
+ 	B0                                = 0x0
+ 	B110                              = 0x6e
+ 	B115200                           = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DLT_A429                          = 0xb8
+@@ -390,6 +472,11 @@ const (
+ 	FF1                               = 0x4000
+ 	FFDLY                             = 0x4000
+ 	FLUSHO                            = 0x800000
++	FSOPT_ATTR_CMN_EXTENDED           = 0x20
++	FSOPT_NOFOLLOW                    = 0x1
++	FSOPT_NOINMEMUPDATE               = 0x2
++	FSOPT_PACK_INVAL_ATTRS            = 0x8
++	FSOPT_REPORT_FULLSIZE             = 0x4
+ 	F_ADDFILESIGS                     = 0x3d
+ 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+ 	F_ADDFILESIGS_RETURN              = 0x61
+@@ -425,6 +512,7 @@ const (
+ 	F_PATHPKG_CHECK                   = 0x34
+ 	F_PEOFPOSMODE                     = 0x3
+ 	F_PREALLOCATE                     = 0x2a
++	F_PUNCHHOLE                       = 0x63
+ 	F_RDADVISE                        = 0x2c
+ 	F_RDAHEAD                         = 0x2d
+ 	F_RDLCK                           = 0x1
+@@ -441,10 +529,12 @@ const (
+ 	F_SINGLE_WRITER                   = 0x4c
+ 	F_THAW_FS                         = 0x36
+ 	F_TRANSCODEKEY                    = 0x4b
++	F_TRIM_ACTIVE_FILE                = 0x64
+ 	F_UNLCK                           = 0x2
+ 	F_VOLPOSMODE                      = 0x4
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -681,6 +771,7 @@ const (
+ 	IPV6_FAITH                        = 0x1d
+ 	IPV6_FLOWINFO_MASK                = 0xffffff0f
+ 	IPV6_FLOWLABEL_MASK               = 0xffff0f00
++	IPV6_FLOW_ECN_MASK                = 0x300
+ 	IPV6_FRAGTTL                      = 0x3c
+ 	IPV6_FW_ADD                       = 0x1e
+ 	IPV6_FW_DEL                       = 0x1f
+@@ -771,6 +862,7 @@ const (
+ 	IP_RECVOPTS                       = 0x5
+ 	IP_RECVPKTINFO                    = 0x1a
+ 	IP_RECVRETOPTS                    = 0x6
++	IP_RECVTOS                        = 0x1b
+ 	IP_RECVTTL                        = 0x18
+ 	IP_RETOPTS                        = 0x8
+ 	IP_RF                             = 0x8000
+@@ -789,6 +881,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -884,6 +980,7 @@ const (
+ 	NET_RT_MAXID                      = 0xa
+ 	NET_RT_STAT                       = 0x4
+ 	NET_RT_TRASH                      = 0x5
++	NFDBITS                           = 0x20
+ 	NL0                               = 0x0
+ 	NL1                               = 0x100
+ 	NL2                               = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ 	WORDSIZE                          = 0x40
+ 	WSTOPPED                          = 0x8
+ 	WUNTRACED                         = 0x2
++	XATTR_CREATE                      = 0x2
++	XATTR_NODEFAULT                   = 0x10
++	XATTR_NOFOLLOW                    = 0x1
++	XATTR_NOSECURITY                  = 0x8
++	XATTR_REPLACE                     = 0x4
++	XATTR_SHOWCOMPRESSION             = 0x20
+ )
+ 
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "ENOTSUP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EPWROFF", "device power is off"},
++	{83, "EDEVERR", "device error"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EBADEXEC", "bad executable (or shared library)"},
++	{86, "EBADARCH", "bad CPU type in executable"},
++	{87, "ESHLIBVERS", "shared library version mismatch"},
++	{88, "EBADMACHO", "malformed Mach-o file"},
++	{89, "ECANCELED", "operation canceled"},
++	{90, "EIDRM", "identifier removed"},
++	{91, "ENOMSG", "no message of desired type"},
++	{92, "EILSEQ", "illegal byte sequence"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EBADMSG", "bad message"},
++	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++	{96, "ENODATA", "no message available on STREAM"},
++	{97, "ENOLINK", "ENOLINK (Reserved)"},
++	{98, "ENOSR", "no STREAM resources"},
++	{99, "ENOSTR", "not a STREAM"},
++	{100, "EPROTO", "protocol error"},
++	{101, "ETIME", "STREAM ioctl timeout"},
++	{102, "EOPNOTSUPP", "operation not supported on socket"},
++	{103, "ENOPOLICY", "policy not found"},
++	{104, "ENOTRECOVERABLE", "state not recoverable"},
++	{105, "EOWNERDEAD", "previous owner died"},
++	{106, "EQFULL", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "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
+index 24cb522d..3e417571 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
+@@ -3,7 +3,7 @@
+ 
+ // +build arm,darwin
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- _const.go
+ 
+ package unix
+@@ -49,6 +49,86 @@ const (
+ 	AF_UNSPEC                         = 0x0
+ 	AF_UTUN                           = 0x26
+ 	ALTWERASE                         = 0x200
++	ATTR_BIT_MAP_COUNT                = 0x5
++	ATTR_CMN_ACCESSMASK               = 0x20000
++	ATTR_CMN_ACCTIME                  = 0x1000
++	ATTR_CMN_ADDEDTIME                = 0x10000000
++	ATTR_CMN_BKUPTIME                 = 0x2000
++	ATTR_CMN_CHGTIME                  = 0x800
++	ATTR_CMN_CRTIME                   = 0x200
++	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000
++	ATTR_CMN_DEVID                    = 0x2
++	ATTR_CMN_DOCUMENT_ID              = 0x100000
++	ATTR_CMN_ERROR                    = 0x20000000
++	ATTR_CMN_EXTENDED_SECURITY        = 0x400000
++	ATTR_CMN_FILEID                   = 0x2000000
++	ATTR_CMN_FLAGS                    = 0x40000
++	ATTR_CMN_FNDRINFO                 = 0x4000
++	ATTR_CMN_FSID                     = 0x4
++	ATTR_CMN_FULLPATH                 = 0x8000000
++	ATTR_CMN_GEN_COUNT                = 0x80000
++	ATTR_CMN_GRPID                    = 0x10000
++	ATTR_CMN_GRPUUID                  = 0x1000000
++	ATTR_CMN_MODTIME                  = 0x400
++	ATTR_CMN_NAME                     = 0x1
++	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000
++	ATTR_CMN_NAMEDATTRLIST            = 0x100000
++	ATTR_CMN_OBJID                    = 0x20
++	ATTR_CMN_OBJPERMANENTID           = 0x40
++	ATTR_CMN_OBJTAG                   = 0x10
++	ATTR_CMN_OBJTYPE                  = 0x8
++	ATTR_CMN_OWNERID                  = 0x8000
++	ATTR_CMN_PARENTID                 = 0x4000000
++	ATTR_CMN_PAROBJID                 = 0x80
++	ATTR_CMN_RETURNED_ATTRS           = 0x80000000
++	ATTR_CMN_SCRIPT                   = 0x100
++	ATTR_CMN_SETMASK                  = 0x41c7ff00
++	ATTR_CMN_USERACCESS               = 0x200000
++	ATTR_CMN_UUID                     = 0x800000
++	ATTR_CMN_VALIDMASK                = 0xffffffff
++	ATTR_CMN_VOLSETMASK               = 0x6700
++	ATTR_FILE_ALLOCSIZE               = 0x4
++	ATTR_FILE_CLUMPSIZE               = 0x10
++	ATTR_FILE_DATAALLOCSIZE           = 0x400
++	ATTR_FILE_DATAEXTENTS             = 0x800
++	ATTR_FILE_DATALENGTH              = 0x200
++	ATTR_FILE_DEVTYPE                 = 0x20
++	ATTR_FILE_FILETYPE                = 0x40
++	ATTR_FILE_FORKCOUNT               = 0x80
++	ATTR_FILE_FORKLIST                = 0x100
++	ATTR_FILE_IOBLOCKSIZE             = 0x8
++	ATTR_FILE_LINKCOUNT               = 0x1
++	ATTR_FILE_RSRCALLOCSIZE           = 0x2000
++	ATTR_FILE_RSRCEXTENTS             = 0x4000
++	ATTR_FILE_RSRCLENGTH              = 0x1000
++	ATTR_FILE_SETMASK                 = 0x20
++	ATTR_FILE_TOTALSIZE               = 0x2
++	ATTR_FILE_VALIDMASK               = 0x37ff
++	ATTR_VOL_ALLOCATIONCLUMP          = 0x40
++	ATTR_VOL_ATTRIBUTES               = 0x40000000
++	ATTR_VOL_CAPABILITIES             = 0x20000
++	ATTR_VOL_DIRCOUNT                 = 0x400
++	ATTR_VOL_ENCODINGSUSED            = 0x10000
++	ATTR_VOL_FILECOUNT                = 0x200
++	ATTR_VOL_FSTYPE                   = 0x1
++	ATTR_VOL_INFO                     = 0x80000000
++	ATTR_VOL_IOBLOCKSIZE              = 0x80
++	ATTR_VOL_MAXOBJCOUNT              = 0x800
++	ATTR_VOL_MINALLOCATION            = 0x20
++	ATTR_VOL_MOUNTEDDEVICE            = 0x8000
++	ATTR_VOL_MOUNTFLAGS               = 0x4000
++	ATTR_VOL_MOUNTPOINT               = 0x1000
++	ATTR_VOL_NAME                     = 0x2000
++	ATTR_VOL_OBJCOUNT                 = 0x100
++	ATTR_VOL_QUOTA_SIZE               = 0x10000000
++	ATTR_VOL_RESERVED_SIZE            = 0x20000000
++	ATTR_VOL_SETMASK                  = 0x80002000
++	ATTR_VOL_SIGNATURE                = 0x2
++	ATTR_VOL_SIZE                     = 0x4
++	ATTR_VOL_SPACEAVAIL               = 0x10
++	ATTR_VOL_SPACEFREE                = 0x8
++	ATTR_VOL_UUID                     = 0x40000
++	ATTR_VOL_VALIDMASK                = 0xf007ffff
+ 	B0                                = 0x0
+ 	B110                              = 0x6e
+ 	B115200                           = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DLT_A429                          = 0xb8
+@@ -390,6 +472,11 @@ const (
+ 	FF1                               = 0x4000
+ 	FFDLY                             = 0x4000
+ 	FLUSHO                            = 0x800000
++	FSOPT_ATTR_CMN_EXTENDED           = 0x20
++	FSOPT_NOFOLLOW                    = 0x1
++	FSOPT_NOINMEMUPDATE               = 0x2
++	FSOPT_PACK_INVAL_ATTRS            = 0x8
++	FSOPT_REPORT_FULLSIZE             = 0x4
+ 	F_ADDFILESIGS                     = 0x3d
+ 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+ 	F_ADDFILESIGS_RETURN              = 0x61
+@@ -425,6 +512,7 @@ const (
+ 	F_PATHPKG_CHECK                   = 0x34
+ 	F_PEOFPOSMODE                     = 0x3
+ 	F_PREALLOCATE                     = 0x2a
++	F_PUNCHHOLE                       = 0x63
+ 	F_RDADVISE                        = 0x2c
+ 	F_RDAHEAD                         = 0x2d
+ 	F_RDLCK                           = 0x1
+@@ -441,10 +529,12 @@ const (
+ 	F_SINGLE_WRITER                   = 0x4c
+ 	F_THAW_FS                         = 0x36
+ 	F_TRANSCODEKEY                    = 0x4b
++	F_TRIM_ACTIVE_FILE                = 0x64
+ 	F_UNLCK                           = 0x2
+ 	F_VOLPOSMODE                      = 0x4
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -681,6 +771,7 @@ const (
+ 	IPV6_FAITH                        = 0x1d
+ 	IPV6_FLOWINFO_MASK                = 0xffffff0f
+ 	IPV6_FLOWLABEL_MASK               = 0xffff0f00
++	IPV6_FLOW_ECN_MASK                = 0x300
+ 	IPV6_FRAGTTL                      = 0x3c
+ 	IPV6_FW_ADD                       = 0x1e
+ 	IPV6_FW_DEL                       = 0x1f
+@@ -771,6 +862,7 @@ const (
+ 	IP_RECVOPTS                       = 0x5
+ 	IP_RECVPKTINFO                    = 0x1a
+ 	IP_RECVRETOPTS                    = 0x6
++	IP_RECVTOS                        = 0x1b
+ 	IP_RECVTTL                        = 0x18
+ 	IP_RETOPTS                        = 0x8
+ 	IP_RF                             = 0x8000
+@@ -789,6 +881,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -884,6 +980,7 @@ const (
+ 	NET_RT_MAXID                      = 0xa
+ 	NET_RT_STAT                       = 0x4
+ 	NET_RT_TRASH                      = 0x5
++	NFDBITS                           = 0x20
+ 	NL0                               = 0x0
+ 	NL1                               = 0x100
+ 	NL2                               = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ 	WORDSIZE                          = 0x40
+ 	WSTOPPED                          = 0x8
+ 	WUNTRACED                         = 0x2
++	XATTR_CREATE                      = 0x2
++	XATTR_NODEFAULT                   = 0x10
++	XATTR_NOFOLLOW                    = 0x1
++	XATTR_NOSECURITY                  = 0x8
++	XATTR_REPLACE                     = 0x4
++	XATTR_SHOWCOMPRESSION             = 0x20
+ )
+ 
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "ENOTSUP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EPWROFF", "device power is off"},
++	{83, "EDEVERR", "device error"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EBADEXEC", "bad executable (or shared library)"},
++	{86, "EBADARCH", "bad CPU type in executable"},
++	{87, "ESHLIBVERS", "shared library version mismatch"},
++	{88, "EBADMACHO", "malformed Mach-o file"},
++	{89, "ECANCELED", "operation canceled"},
++	{90, "EIDRM", "identifier removed"},
++	{91, "ENOMSG", "no message of desired type"},
++	{92, "EILSEQ", "illegal byte sequence"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EBADMSG", "bad message"},
++	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++	{96, "ENODATA", "no message available on STREAM"},
++	{97, "ENOLINK", "ENOLINK (Reserved)"},
++	{98, "ENOSR", "no STREAM resources"},
++	{99, "ENOSTR", "not a STREAM"},
++	{100, "EPROTO", "protocol error"},
++	{101, "ETIME", "STREAM ioctl timeout"},
++	{102, "EOPNOTSUPP", "operation not supported on socket"},
++	{103, "ENOPOLICY", "policy not found"},
++	{104, "ENOTRECOVERABLE", "state not recoverable"},
++	{105, "EOWNERDEAD", "previous owner died"},
++	{106, "EQFULL", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+index cc8cc5b5..cbd8ed18 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build arm64,darwin
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -49,6 +49,86 @@ const (
+ 	AF_UNSPEC                         = 0x0
+ 	AF_UTUN                           = 0x26
+ 	ALTWERASE                         = 0x200
++	ATTR_BIT_MAP_COUNT                = 0x5
++	ATTR_CMN_ACCESSMASK               = 0x20000
++	ATTR_CMN_ACCTIME                  = 0x1000
++	ATTR_CMN_ADDEDTIME                = 0x10000000
++	ATTR_CMN_BKUPTIME                 = 0x2000
++	ATTR_CMN_CHGTIME                  = 0x800
++	ATTR_CMN_CRTIME                   = 0x200
++	ATTR_CMN_DATA_PROTECT_FLAGS       = 0x40000000
++	ATTR_CMN_DEVID                    = 0x2
++	ATTR_CMN_DOCUMENT_ID              = 0x100000
++	ATTR_CMN_ERROR                    = 0x20000000
++	ATTR_CMN_EXTENDED_SECURITY        = 0x400000
++	ATTR_CMN_FILEID                   = 0x2000000
++	ATTR_CMN_FLAGS                    = 0x40000
++	ATTR_CMN_FNDRINFO                 = 0x4000
++	ATTR_CMN_FSID                     = 0x4
++	ATTR_CMN_FULLPATH                 = 0x8000000
++	ATTR_CMN_GEN_COUNT                = 0x80000
++	ATTR_CMN_GRPID                    = 0x10000
++	ATTR_CMN_GRPUUID                  = 0x1000000
++	ATTR_CMN_MODTIME                  = 0x400
++	ATTR_CMN_NAME                     = 0x1
++	ATTR_CMN_NAMEDATTRCOUNT           = 0x80000
++	ATTR_CMN_NAMEDATTRLIST            = 0x100000
++	ATTR_CMN_OBJID                    = 0x20
++	ATTR_CMN_OBJPERMANENTID           = 0x40
++	ATTR_CMN_OBJTAG                   = 0x10
++	ATTR_CMN_OBJTYPE                  = 0x8
++	ATTR_CMN_OWNERID                  = 0x8000
++	ATTR_CMN_PARENTID                 = 0x4000000
++	ATTR_CMN_PAROBJID                 = 0x80
++	ATTR_CMN_RETURNED_ATTRS           = 0x80000000
++	ATTR_CMN_SCRIPT                   = 0x100
++	ATTR_CMN_SETMASK                  = 0x41c7ff00
++	ATTR_CMN_USERACCESS               = 0x200000
++	ATTR_CMN_UUID                     = 0x800000
++	ATTR_CMN_VALIDMASK                = 0xffffffff
++	ATTR_CMN_VOLSETMASK               = 0x6700
++	ATTR_FILE_ALLOCSIZE               = 0x4
++	ATTR_FILE_CLUMPSIZE               = 0x10
++	ATTR_FILE_DATAALLOCSIZE           = 0x400
++	ATTR_FILE_DATAEXTENTS             = 0x800
++	ATTR_FILE_DATALENGTH              = 0x200
++	ATTR_FILE_DEVTYPE                 = 0x20
++	ATTR_FILE_FILETYPE                = 0x40
++	ATTR_FILE_FORKCOUNT               = 0x80
++	ATTR_FILE_FORKLIST                = 0x100
++	ATTR_FILE_IOBLOCKSIZE             = 0x8
++	ATTR_FILE_LINKCOUNT               = 0x1
++	ATTR_FILE_RSRCALLOCSIZE           = 0x2000
++	ATTR_FILE_RSRCEXTENTS             = 0x4000
++	ATTR_FILE_RSRCLENGTH              = 0x1000
++	ATTR_FILE_SETMASK                 = 0x20
++	ATTR_FILE_TOTALSIZE               = 0x2
++	ATTR_FILE_VALIDMASK               = 0x37ff
++	ATTR_VOL_ALLOCATIONCLUMP          = 0x40
++	ATTR_VOL_ATTRIBUTES               = 0x40000000
++	ATTR_VOL_CAPABILITIES             = 0x20000
++	ATTR_VOL_DIRCOUNT                 = 0x400
++	ATTR_VOL_ENCODINGSUSED            = 0x10000
++	ATTR_VOL_FILECOUNT                = 0x200
++	ATTR_VOL_FSTYPE                   = 0x1
++	ATTR_VOL_INFO                     = 0x80000000
++	ATTR_VOL_IOBLOCKSIZE              = 0x80
++	ATTR_VOL_MAXOBJCOUNT              = 0x800
++	ATTR_VOL_MINALLOCATION            = 0x20
++	ATTR_VOL_MOUNTEDDEVICE            = 0x8000
++	ATTR_VOL_MOUNTFLAGS               = 0x4000
++	ATTR_VOL_MOUNTPOINT               = 0x1000
++	ATTR_VOL_NAME                     = 0x2000
++	ATTR_VOL_OBJCOUNT                 = 0x100
++	ATTR_VOL_QUOTA_SIZE               = 0x10000000
++	ATTR_VOL_RESERVED_SIZE            = 0x20000000
++	ATTR_VOL_SETMASK                  = 0x80002000
++	ATTR_VOL_SIGNATURE                = 0x2
++	ATTR_VOL_SIZE                     = 0x4
++	ATTR_VOL_SPACEAVAIL               = 0x10
++	ATTR_VOL_SPACEFREE                = 0x8
++	ATTR_VOL_UUID                     = 0x40000
++	ATTR_VOL_VALIDMASK                = 0xf007ffff
+ 	B0                                = 0x0
+ 	B110                              = 0x6e
+ 	B115200                           = 0x1c200
+@@ -169,6 +249,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DLT_A429                          = 0xb8
+@@ -390,6 +472,11 @@ const (
+ 	FF1                               = 0x4000
+ 	FFDLY                             = 0x4000
+ 	FLUSHO                            = 0x800000
++	FSOPT_ATTR_CMN_EXTENDED           = 0x20
++	FSOPT_NOFOLLOW                    = 0x1
++	FSOPT_NOINMEMUPDATE               = 0x2
++	FSOPT_PACK_INVAL_ATTRS            = 0x8
++	FSOPT_REPORT_FULLSIZE             = 0x4
+ 	F_ADDFILESIGS                     = 0x3d
+ 	F_ADDFILESIGS_FOR_DYLD_SIM        = 0x53
+ 	F_ADDFILESIGS_RETURN              = 0x61
+@@ -425,6 +512,7 @@ const (
+ 	F_PATHPKG_CHECK                   = 0x34
+ 	F_PEOFPOSMODE                     = 0x3
+ 	F_PREALLOCATE                     = 0x2a
++	F_PUNCHHOLE                       = 0x63
+ 	F_RDADVISE                        = 0x2c
+ 	F_RDAHEAD                         = 0x2d
+ 	F_RDLCK                           = 0x1
+@@ -441,10 +529,12 @@ const (
+ 	F_SINGLE_WRITER                   = 0x4c
+ 	F_THAW_FS                         = 0x36
+ 	F_TRANSCODEKEY                    = 0x4b
++	F_TRIM_ACTIVE_FILE                = 0x64
+ 	F_UNLCK                           = 0x2
+ 	F_VOLPOSMODE                      = 0x4
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -681,6 +771,7 @@ const (
+ 	IPV6_FAITH                        = 0x1d
+ 	IPV6_FLOWINFO_MASK                = 0xffffff0f
+ 	IPV6_FLOWLABEL_MASK               = 0xffff0f00
++	IPV6_FLOW_ECN_MASK                = 0x300
+ 	IPV6_FRAGTTL                      = 0x3c
+ 	IPV6_FW_ADD                       = 0x1e
+ 	IPV6_FW_DEL                       = 0x1f
+@@ -771,6 +862,7 @@ const (
+ 	IP_RECVOPTS                       = 0x5
+ 	IP_RECVPKTINFO                    = 0x1a
+ 	IP_RECVRETOPTS                    = 0x6
++	IP_RECVTOS                        = 0x1b
+ 	IP_RECVTTL                        = 0x18
+ 	IP_RETOPTS                        = 0x8
+ 	IP_RF                             = 0x8000
+@@ -789,6 +881,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -884,6 +980,7 @@ const (
+ 	NET_RT_MAXID                      = 0xa
+ 	NET_RT_STAT                       = 0x4
+ 	NET_RT_TRASH                      = 0x5
++	NFDBITS                           = 0x20
+ 	NL0                               = 0x0
+ 	NL1                               = 0x100
+ 	NL2                               = 0x200
+@@ -1377,6 +1474,12 @@ const (
+ 	WORDSIZE                          = 0x40
+ 	WSTOPPED                          = 0x8
+ 	WUNTRACED                         = 0x2
++	XATTR_CREATE                      = 0x2
++	XATTR_NODEFAULT                   = 0x10
++	XATTR_NOFOLLOW                    = 0x1
++	XATTR_NOSECURITY                  = 0x8
++	XATTR_REPLACE                     = 0x4
++	XATTR_SHOWCOMPRESSION             = 0x20
+ )
+ 
+ // Errors
+@@ -1528,146 +1631,154 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "ENOTSUP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EPWROFF", "device power is off"},
++	{83, "EDEVERR", "device error"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EBADEXEC", "bad executable (or shared library)"},
++	{86, "EBADARCH", "bad CPU type in executable"},
++	{87, "ESHLIBVERS", "shared library version mismatch"},
++	{88, "EBADMACHO", "malformed Mach-o file"},
++	{89, "ECANCELED", "operation canceled"},
++	{90, "EIDRM", "identifier removed"},
++	{91, "ENOMSG", "no message of desired type"},
++	{92, "EILSEQ", "illegal byte sequence"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EBADMSG", "bad message"},
++	{95, "EMULTIHOP", "EMULTIHOP (Reserved)"},
++	{96, "ENODATA", "no message available on STREAM"},
++	{97, "ENOLINK", "ENOLINK (Reserved)"},
++	{98, "ENOSR", "no STREAM resources"},
++	{99, "ENOSTR", "not a STREAM"},
++	{100, "EPROTO", "protocol error"},
++	{101, "ETIME", "STREAM ioctl timeout"},
++	{102, "EOPNOTSUPP", "operation not supported on socket"},
++	{103, "ENOPOLICY", "policy not found"},
++	{104, "ENOTRECOVERABLE", "state not recoverable"},
++	{105, "EOWNERDEAD", "previous owner died"},
++	{106, "EQFULL", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "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
+index 8f40598b..61304717 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build amd64,dragonfly
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -168,6 +168,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DLT_A429                          = 0xb8
+@@ -353,6 +355,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -835,6 +838,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -873,6 +880,40 @@ const (
+ 	MAP_VPAGETABLE                    = 0x2000
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_AUTOMOUNTED                   = 0x20
++	MNT_CMDFLAGS                      = 0xf0000
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DELEXPORT                     = 0x20000
++	MNT_EXKERB                        = 0x800
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXPUBLIC                      = 0x20000000
++	MNT_EXRDONLY                      = 0x80
++	MNT_FORCE                         = 0x80000
++	MNT_IGNORE                        = 0x800000
++	MNT_LAZY                          = 0x4
++	MNT_LOCAL                         = 0x1000
++	MNT_NOATIME                       = 0x10000000
++	MNT_NOCLUSTERR                    = 0x40000000
++	MNT_NOCLUSTERW                    = 0x80000000
++	MNT_NODEV                         = 0x10
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOSYMFOLLOW                   = 0x400000
++	MNT_NOWAIT                        = 0x2
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x200000
++	MNT_SUIDDIR                       = 0x100000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_TRIM                          = 0x1000000
++	MNT_UPDATE                        = 0x10000
++	MNT_USER                          = 0x8000
++	MNT_VISFLAGMASK                   = 0xf1f0ffff
++	MNT_WAIT                          = 0x1
+ 	MSG_CMSG_CLOEXEC                  = 0x1000
+ 	MSG_CTRUNC                        = 0x20
+ 	MSG_DONTROUTE                     = 0x4
+@@ -897,6 +938,7 @@ const (
+ 	NET_RT_FLAGS                      = 0x2
+ 	NET_RT_IFLIST                     = 0x3
+ 	NET_RT_MAXID                      = 0x4
++	NFDBITS                           = 0x40
+ 	NOFLSH                            = 0x80000000
+ 	NOKERNINFO                        = 0x2000000
+ 	NOTE_ATTRIB                       = 0x8
+@@ -973,7 +1015,10 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
+@@ -1158,6 +1203,36 @@ const (
+ 	SO_TIMESTAMP                      = 0x400
+ 	SO_TYPE                           = 0x1008
+ 	SO_USELOOPBACK                    = 0x40
++	S_BLKSIZE                         = 0x200
++	S_IEXEC                           = 0x40
++	S_IFBLK                           = 0x6000
++	S_IFCHR                           = 0x2000
++	S_IFDB                            = 0x9000
++	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
+ 	TCIOFF                            = 0x3
+ 	TCIOFLUSH                         = 0x3
+@@ -1427,142 +1502,150 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EWOULDBLOCK", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "ECANCELED", "operation canceled"},
++	{86, "EILSEQ", "illegal byte sequence"},
++	{87, "ENOATTR", "attribute not found"},
++	{88, "EDOOFUS", "programming error"},
++	{89, "EBADMSG", "bad message"},
++	{90, "EMULTIHOP", "multihop attempted"},
++	{91, "ENOLINK", "link has been severed"},
++	{92, "EPROTO", "protocol error"},
++	{93, "ENOMEDIUM", "no medium found"},
++	{94, "EUNUSED94", "unknown error: 94"},
++	{95, "EUNUSED95", "unknown error: 95"},
++	{96, "EUNUSED96", "unknown error: 96"},
++	{97, "EUNUSED97", "unknown error: 97"},
++	{98, "EUNUSED98", "unknown error: 98"},
++	{99, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "thread Scheduler"},
++	{33, "SIGCKPT", "checkPoint"},
++	{34, "SIGCKPTEXIT", "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
+index 1d3eec44..84824587 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
+@@ -3,7 +3,7 @@
+ 
+ // +build 386,freebsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+ 
+ package unix
+@@ -351,8 +351,26 @@ const (
+ 	CSTOP                          = 0x13
+ 	CSTOPB                         = 0x400
+ 	CSUSP                          = 0x1a
++	CTL_HW                         = 0x6
++	CTL_KERN                       = 0x1
+ 	CTL_MAXNAME                    = 0x18
+ 	CTL_NET                        = 0x4
++	DIOCGATTR                      = 0xc144648e
++	DIOCGDELETE                    = 0x80106488
++	DIOCGFLUSH                     = 0x20006487
++	DIOCGFRONTSTUFF                = 0x40086486
++	DIOCGFWHEADS                   = 0x40046483
++	DIOCGFWSECTORS                 = 0x40046482
++	DIOCGIDENT                     = 0x41006489
++	DIOCGMEDIASIZE                 = 0x40086481
++	DIOCGPHYSPATH                  = 0x4400648d
++	DIOCGPROVIDERNAME              = 0x4400648a
++	DIOCGSECTORSIZE                = 0x40046480
++	DIOCGSTRIPEOFFSET              = 0x4008648c
++	DIOCGSTRIPESIZE                = 0x4008648b
++	DIOCSKERNELDUMP                = 0x804c6490
++	DIOCSKERNELDUMP_FREEBSD11      = 0x80046485
++	DIOCZONECMD                    = 0xc06c648f
+ 	DLT_A429                       = 0xb8
+ 	DLT_A653_ICM                   = 0xb9
+ 	DLT_AIRONET_HEADER             = 0x78
+@@ -377,11 +395,14 @@ const (
+ 	DLT_CHAOS                      = 0x5
+ 	DLT_CHDLC                      = 0x68
+ 	DLT_CISCO_IOS                  = 0x76
++	DLT_CLASS_NETBSD_RAWAF         = 0x2240000
+ 	DLT_C_HDLC                     = 0x68
+ 	DLT_C_HDLC_WITH_DIR            = 0xcd
+ 	DLT_DBUS                       = 0xe7
+ 	DLT_DECT                       = 0xdd
++	DLT_DISPLAYPORT_AUX            = 0x113
+ 	DLT_DOCSIS                     = 0x8f
++	DLT_DOCSIS31_XRA31             = 0x111
+ 	DLT_DVB_CI                     = 0xeb
+ 	DLT_ECONET                     = 0x73
+ 	DLT_EN10MB                     = 0x1
+@@ -391,6 +412,7 @@ const (
+ 	DLT_ERF                        = 0xc5
+ 	DLT_ERF_ETH                    = 0xaf
+ 	DLT_ERF_POS                    = 0xb0
++	DLT_ETHERNET_MPACKET           = 0x112
+ 	DLT_FC_2                       = 0xe0
+ 	DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1
+ 	DLT_FDDI                       = 0xa
+@@ -404,7 +426,6 @@ const (
+ 	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
+@@ -427,6 +448,7 @@ const (
+ 	DLT_IPV4                       = 0xe4
+ 	DLT_IPV6                       = 0xe5
+ 	DLT_IP_OVER_FC                 = 0x7a
++	DLT_ISO_14443                  = 0x108
+ 	DLT_JUNIPER_ATM1               = 0x89
+ 	DLT_JUNIPER_ATM2               = 0x87
+ 	DLT_JUNIPER_ATM_CEMIC          = 0xee
+@@ -459,8 +481,9 @@ const (
+ 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6
+ 	DLT_LINUX_SLL                  = 0x71
+ 	DLT_LOOP                       = 0x6c
++	DLT_LORATAP                    = 0x10e
+ 	DLT_LTALK                      = 0x72
+-	DLT_MATCHING_MAX               = 0x104
++	DLT_MATCHING_MAX               = 0x113
+ 	DLT_MATCHING_MIN               = 0x68
+ 	DLT_MFR                        = 0xb6
+ 	DLT_MOST                       = 0xd3
+@@ -476,14 +499,16 @@ const (
+ 	DLT_NFC_LLCP                   = 0xf5
+ 	DLT_NFLOG                      = 0xef
+ 	DLT_NG40                       = 0xf4
++	DLT_NORDIC_BLE                 = 0x110
+ 	DLT_NULL                       = 0x0
++	DLT_OPENFLOW                   = 0x10b
+ 	DLT_PCI_EXP                    = 0x7d
+ 	DLT_PFLOG                      = 0x75
+ 	DLT_PFSYNC                     = 0x79
+ 	DLT_PKTAP                      = 0x102
+ 	DLT_PPI                        = 0xc0
+ 	DLT_PPP                        = 0x9
+-	DLT_PPP_BSDOS                  = 0x10
++	DLT_PPP_BSDOS                  = 0xe
+ 	DLT_PPP_ETHER                  = 0x33
+ 	DLT_PPP_PPPD                   = 0xa6
+ 	DLT_PPP_SERIAL                 = 0x32
+@@ -494,19 +519,25 @@ const (
+ 	DLT_PRONET                     = 0x4
+ 	DLT_RAIF1                      = 0xc6
+ 	DLT_RAW                        = 0xc
++	DLT_RDS                        = 0x109
++	DLT_REDBACK_SMARTEDGE          = 0x20
+ 	DLT_RIO                        = 0x7c
+ 	DLT_RTAC_SERIAL                = 0xfa
+ 	DLT_SCCP                       = 0x8e
+ 	DLT_SCTP                       = 0xf8
++	DLT_SDLC                       = 0x10c
+ 	DLT_SITA                       = 0xc4
+ 	DLT_SLIP                       = 0x8
+-	DLT_SLIP_BSDOS                 = 0xf
++	DLT_SLIP_BSDOS                 = 0xd
+ 	DLT_STANAG_5066_D_PDU          = 0xed
+ 	DLT_SUNATM                     = 0x7b
+ 	DLT_SYMANTEC_FIREWALL          = 0x63
++	DLT_TI_LLN_SNIFFER             = 0x10d
+ 	DLT_TZSP                       = 0x80
+ 	DLT_USB                        = 0xba
+ 	DLT_USBPCAP                    = 0xf9
++	DLT_USB_DARWIN                 = 0x10a
++	DLT_USB_FREEBSD                = 0xba
+ 	DLT_USB_LINUX                  = 0xbd
+ 	DLT_USB_LINUX_MMAPPED          = 0xdc
+ 	DLT_USER0                      = 0x93
+@@ -525,10 +556,14 @@ const (
+ 	DLT_USER7                      = 0x9a
+ 	DLT_USER8                      = 0x9b
+ 	DLT_USER9                      = 0x9c
++	DLT_VSOCK                      = 0x10f
++	DLT_WATTSTOPPER_DLM            = 0x107
+ 	DLT_WIHART                     = 0xdf
+ 	DLT_WIRESHARK_UPPER_PDU        = 0xfc
+ 	DLT_X2E_SERIAL                 = 0xd5
+ 	DLT_X2E_XORAYA                 = 0xd6
++	DLT_ZWAVE_R1_R2                = 0x105
++	DLT_ZWAVE_R3                   = 0x106
+ 	DT_BLK                         = 0x6
+ 	DT_CHR                         = 0x2
+ 	DT_DIR                         = 0x4
+@@ -546,6 +581,7 @@ const (
+ 	ECHONL                         = 0x10
+ 	ECHOPRT                        = 0x20
+ 	EVFILT_AIO                     = -0x3
++	EVFILT_EMPTY                   = -0xd
+ 	EVFILT_FS                      = -0x9
+ 	EVFILT_LIO                     = -0xa
+ 	EVFILT_PROC                    = -0x5
+@@ -553,11 +589,12 @@ const (
+ 	EVFILT_READ                    = -0x1
+ 	EVFILT_SENDFILE                = -0xc
+ 	EVFILT_SIGNAL                  = -0x6
+-	EVFILT_SYSCOUNT                = 0xc
++	EVFILT_SYSCOUNT                = 0xd
+ 	EVFILT_TIMER                   = -0x7
+ 	EVFILT_USER                    = -0xb
+ 	EVFILT_VNODE                   = -0x4
+ 	EVFILT_WRITE                   = -0x2
++	EVNAMEMAP_NAME_SIZE            = 0x40
+ 	EV_ADD                         = 0x1
+ 	EV_CLEAR                       = 0x20
+ 	EV_DELETE                      = 0x2
+@@ -574,6 +611,7 @@ const (
+ 	EV_RECEIPT                     = 0x40
+ 	EV_SYSFLAGS                    = 0xf000
+ 	EXTA                           = 0x4b00
++	EXTATTR_MAXNAMELEN             = 0xff
+ 	EXTATTR_NAMESPACE_EMPTY        = 0x0
+ 	EXTATTR_NAMESPACE_SYSTEM       = 0x2
+ 	EXTATTR_NAMESPACE_USER         = 0x1
+@@ -608,12 +646,14 @@ const (
+ 	F_UNLCKSYS                     = 0x4
+ 	F_WRLCK                        = 0x3
+ 	HUPCL                          = 0x4000
++	HW_MACHINE                     = 0x1
+ 	ICANON                         = 0x100
+ 	ICMP6_FILTER                   = 0x12
+ 	ICRNL                          = 0x100
+ 	IEXTEN                         = 0x400
+ 	IFAN_ARRIVAL                   = 0x0
+ 	IFAN_DEPARTURE                 = 0x1
++	IFCAP_WOL_MAGIC                = 0x2000
+ 	IFF_ALLMULTI                   = 0x200
+ 	IFF_ALTPHYS                    = 0x4000
+ 	IFF_BROADCAST                  = 0x2
+@@ -630,6 +670,7 @@ const (
+ 	IFF_MONITOR                    = 0x40000
+ 	IFF_MULTICAST                  = 0x8000
+ 	IFF_NOARP                      = 0x80
++	IFF_NOGROUP                    = 0x800000
+ 	IFF_OACTIVE                    = 0x400
+ 	IFF_POINTOPOINT                = 0x10
+ 	IFF_PPROMISC                   = 0x20000
+@@ -804,6 +845,7 @@ const (
+ 	IPV6_DSTOPTS                   = 0x32
+ 	IPV6_FLOWID                    = 0x43
+ 	IPV6_FLOWINFO_MASK             = 0xffffff0f
++	IPV6_FLOWLABEL_LEN             = 0x14
+ 	IPV6_FLOWLABEL_MASK            = 0xffff0f00
+ 	IPV6_FLOWTYPE                  = 0x44
+ 	IPV6_FRAGTTL                   = 0x78
+@@ -824,13 +866,13 @@ const (
+ 	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_ORIGDSTADDR               = 0x48
+ 	IPV6_PATHMTU                   = 0x2c
+ 	IPV6_PKTINFO                   = 0x2e
+ 	IPV6_PORTRANGE                 = 0xe
+@@ -842,6 +884,7 @@ const (
+ 	IPV6_RECVFLOWID                = 0x46
+ 	IPV6_RECVHOPLIMIT              = 0x25
+ 	IPV6_RECVHOPOPTS               = 0x27
++	IPV6_RECVORIGDSTADDR           = 0x48
+ 	IPV6_RECVPATHMTU               = 0x2b
+ 	IPV6_RECVPKTINFO               = 0x24
+ 	IPV6_RECVRSSBUCKETID           = 0x47
+@@ -902,10 +945,8 @@ const (
+ 	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
+@@ -915,6 +956,7 @@ const (
+ 	IP_OFFMASK                     = 0x1fff
+ 	IP_ONESBCAST                   = 0x17
+ 	IP_OPTIONS                     = 0x1
++	IP_ORIGDSTADDR                 = 0x1b
+ 	IP_PORTRANGE                   = 0x13
+ 	IP_PORTRANGE_DEFAULT           = 0x0
+ 	IP_PORTRANGE_HIGH              = 0x1
+@@ -923,6 +965,7 @@ const (
+ 	IP_RECVFLOWID                  = 0x5d
+ 	IP_RECVIF                      = 0x14
+ 	IP_RECVOPTS                    = 0x5
++	IP_RECVORIGDSTADDR             = 0x1b
+ 	IP_RECVRETOPTS                 = 0x6
+ 	IP_RECVRSSBUCKETID             = 0x5e
+ 	IP_RECVTOS                     = 0x44
+@@ -944,6 +987,10 @@ const (
+ 	IXANY                          = 0x800
+ 	IXOFF                          = 0x400
+ 	IXON                           = 0x200
++	KERN_HOSTNAME                  = 0xa
++	KERN_OSRELEASE                 = 0x2
++	KERN_OSTYPE                    = 0x1
++	KERN_VERSION                   = 0x4
+ 	LOCK_EX                        = 0x2
+ 	LOCK_NB                        = 0x4
+ 	LOCK_SH                        = 0x1
+@@ -968,6 +1015,7 @@ const (
+ 	MAP_EXCL                       = 0x4000
+ 	MAP_FILE                       = 0x0
+ 	MAP_FIXED                      = 0x10
++	MAP_GUARD                      = 0x2000
+ 	MAP_HASSEMAPHORE               = 0x200
+ 	MAP_NOCORE                     = 0x20000
+ 	MAP_NOSYNC                     = 0x800
+@@ -979,8 +1027,62 @@ const (
+ 	MAP_RESERVED0100               = 0x100
+ 	MAP_SHARED                     = 0x1
+ 	MAP_STACK                      = 0x400
++	MCAST_BLOCK_SOURCE             = 0x54
++	MCAST_EXCLUDE                  = 0x2
++	MCAST_INCLUDE                  = 0x1
++	MCAST_JOIN_GROUP               = 0x50
++	MCAST_JOIN_SOURCE_GROUP        = 0x52
++	MCAST_LEAVE_GROUP              = 0x51
++	MCAST_LEAVE_SOURCE_GROUP       = 0x53
++	MCAST_UNBLOCK_SOURCE           = 0x55
++	MCAST_UNDEFINED                = 0x0
+ 	MCL_CURRENT                    = 0x1
+ 	MCL_FUTURE                     = 0x2
++	MNT_ACLS                       = 0x8000000
++	MNT_ASYNC                      = 0x40
++	MNT_AUTOMOUNTED                = 0x200000000
++	MNT_BYFSID                     = 0x8000000
++	MNT_CMDFLAGS                   = 0xd0f0000
++	MNT_DEFEXPORTED                = 0x200
++	MNT_DELEXPORT                  = 0x20000
++	MNT_EXKERB                     = 0x800
++	MNT_EXPORTANON                 = 0x400
++	MNT_EXPORTED                   = 0x100
++	MNT_EXPUBLIC                   = 0x20000000
++	MNT_EXRDONLY                   = 0x80
++	MNT_FORCE                      = 0x80000
++	MNT_GJOURNAL                   = 0x2000000
++	MNT_IGNORE                     = 0x800000
++	MNT_LAZY                       = 0x3
++	MNT_LOCAL                      = 0x1000
++	MNT_MULTILABEL                 = 0x4000000
++	MNT_NFS4ACLS                   = 0x10
++	MNT_NOATIME                    = 0x10000000
++	MNT_NOCLUSTERR                 = 0x40000000
++	MNT_NOCLUSTERW                 = 0x80000000
++	MNT_NOEXEC                     = 0x4
++	MNT_NONBUSY                    = 0x4000000
++	MNT_NOSUID                     = 0x8
++	MNT_NOSYMFOLLOW                = 0x400000
++	MNT_NOWAIT                     = 0x2
++	MNT_QUOTA                      = 0x2000
++	MNT_RDONLY                     = 0x1
++	MNT_RELOAD                     = 0x40000
++	MNT_ROOTFS                     = 0x4000
++	MNT_SNAPSHOT                   = 0x1000000
++	MNT_SOFTDEP                    = 0x200000
++	MNT_SUIDDIR                    = 0x100000
++	MNT_SUJ                        = 0x100000000
++	MNT_SUSPEND                    = 0x4
++	MNT_SYNCHRONOUS                = 0x2
++	MNT_UNION                      = 0x20
++	MNT_UNTRUSTED                  = 0x800000000
++	MNT_UPDATE                     = 0x10000
++	MNT_UPDATEMASK                 = 0xad8d0807e
++	MNT_USER                       = 0x8000
++	MNT_VERIFIED                   = 0x400000000
++	MNT_VISFLAGMASK                = 0xffef0ffff
++	MNT_WAIT                       = 0x1
+ 	MSG_CMSG_CLOEXEC               = 0x40000
+ 	MSG_COMPAT                     = 0x8000
+ 	MSG_CTRUNC                     = 0x20
+@@ -1005,8 +1107,10 @@ const (
+ 	NET_RT_IFLIST                  = 0x3
+ 	NET_RT_IFLISTL                 = 0x5
+ 	NET_RT_IFMALIST                = 0x4
++	NFDBITS                        = 0x20
+ 	NOFLSH                         = 0x80000000
+ 	NOKERNINFO                     = 0x2000000
++	NOTE_ABSTIME                   = 0x10
+ 	NOTE_ATTRIB                    = 0x8
+ 	NOTE_CHILD                     = 0x4
+ 	NOTE_CLOSE                     = 0x100
+@@ -1161,7 +1265,6 @@ const (
+ 	RTV_WEIGHT                     = 0x100
+ 	RT_ALL_FIBS                    = -0x1
+ 	RT_BLACKHOLE                   = 0x40
+-	RT_CACHING_CONTEXT             = 0x1
+ 	RT_DEFAULT_FIB                 = 0x0
+ 	RT_HAS_GW                      = 0x80
+ 	RT_HAS_HEADER                  = 0x10
+@@ -1171,15 +1274,17 @@ const (
+ 	RT_LLE_CACHE                   = 0x100
+ 	RT_MAY_LOOP                    = 0x8
+ 	RT_MAY_LOOP_BIT                = 0x3
+-	RT_NORTREF                     = 0x2
+ 	RT_REJECT                      = 0x20
+ 	RUSAGE_CHILDREN                = -0x1
+ 	RUSAGE_SELF                    = 0x0
+ 	RUSAGE_THREAD                  = 0x1
+ 	SCM_BINTIME                    = 0x4
+ 	SCM_CREDS                      = 0x3
++	SCM_MONOTONIC                  = 0x6
++	SCM_REALTIME                   = 0x5
+ 	SCM_RIGHTS                     = 0x1
+ 	SCM_TIMESTAMP                  = 0x2
++	SCM_TIME_INFO                  = 0x7
+ 	SHUT_RD                        = 0x0
+ 	SHUT_RDWR                      = 0x2
+ 	SHUT_WR                        = 0x1
+@@ -1195,6 +1300,7 @@ const (
+ 	SIOCGETSGCNT                   = 0xc0147210
+ 	SIOCGETVIFCNT                  = 0xc014720f
+ 	SIOCGHIWAT                     = 0x40047301
++	SIOCGHWADDR                    = 0xc020693e
+ 	SIOCGI2C                       = 0xc020693d
+ 	SIOCGIFADDR                    = 0xc0206921
+ 	SIOCGIFBRDADDR                 = 0xc0206923
+@@ -1216,8 +1322,11 @@ const (
+ 	SIOCGIFPDSTADDR                = 0xc0206948
+ 	SIOCGIFPHYS                    = 0xc0206935
+ 	SIOCGIFPSRCADDR                = 0xc0206947
++	SIOCGIFRSSHASH                 = 0xc0186997
++	SIOCGIFRSSKEY                  = 0xc0946996
+ 	SIOCGIFSTATUS                  = 0xc331693b
+ 	SIOCGIFXMEDIA                  = 0xc028698b
++	SIOCGLANPCP                    = 0xc0206998
+ 	SIOCGLOWAT                     = 0x40047303
+ 	SIOCGPGRP                      = 0x40047309
+ 	SIOCGPRIVATE_0                 = 0xc0206950
+@@ -1248,6 +1357,7 @@ const (
+ 	SIOCSIFPHYS                    = 0x80206936
+ 	SIOCSIFRVNET                   = 0xc020695b
+ 	SIOCSIFVNET                    = 0xc020695a
++	SIOCSLANPCP                    = 0x80206999
+ 	SIOCSLOWAT                     = 0x80047302
+ 	SIOCSPGRP                      = 0x80047308
+ 	SIOCSTUNFIB                    = 0x8020695f
+@@ -1266,6 +1376,7 @@ const (
+ 	SO_BINTIME                     = 0x2000
+ 	SO_BROADCAST                   = 0x20
+ 	SO_DEBUG                       = 0x1
++	SO_DOMAIN                      = 0x1019
+ 	SO_DONTROUTE                   = 0x10
+ 	SO_ERROR                       = 0x1007
+ 	SO_KEEPALIVE                   = 0x8
+@@ -1274,6 +1385,7 @@ const (
+ 	SO_LISTENINCQLEN               = 0x1013
+ 	SO_LISTENQLEN                  = 0x1012
+ 	SO_LISTENQLIMIT                = 0x1011
++	SO_MAX_PACING_RATE             = 0x1018
+ 	SO_NOSIGPIPE                   = 0x800
+ 	SO_NO_DDP                      = 0x8000
+ 	SO_NO_OFFLOAD                  = 0x4000
+@@ -1286,15 +1398,52 @@ const (
+ 	SO_RCVTIMEO                    = 0x1006
+ 	SO_REUSEADDR                   = 0x4
+ 	SO_REUSEPORT                   = 0x200
++	SO_REUSEPORT_LB                = 0x10000
+ 	SO_SETFIB                      = 0x1014
+ 	SO_SNDBUF                      = 0x1001
+ 	SO_SNDLOWAT                    = 0x1003
+ 	SO_SNDTIMEO                    = 0x1005
+ 	SO_TIMESTAMP                   = 0x400
++	SO_TS_BINTIME                  = 0x1
++	SO_TS_CLOCK                    = 0x1017
++	SO_TS_CLOCK_MAX                = 0x3
++	SO_TS_DEFAULT                  = 0x0
++	SO_TS_MONOTONIC                = 0x3
++	SO_TS_REALTIME                 = 0x2
++	SO_TS_REALTIME_MICRO           = 0x0
+ 	SO_TYPE                        = 0x1008
+ 	SO_USELOOPBACK                 = 0x40
+ 	SO_USER_COOKIE                 = 0x1015
+ 	SO_VENDOR                      = 0x80000000
++	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
+ 	TAB0                           = 0x0
+ 	TAB3                           = 0x4
+ 	TABDLY                         = 0x4
+@@ -1305,10 +1454,45 @@ const (
+ 	TCOFLUSH                       = 0x2
+ 	TCOOFF                         = 0x1
+ 	TCOON                          = 0x2
++	TCP_BBR_ACK_COMP_ALG           = 0x448
++	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c
++	TCP_BBR_DRAIN_PG               = 0x42e
++	TCP_BBR_EXTRA_GAIN             = 0x449
++	TCP_BBR_IWINTSO                = 0x42b
++	TCP_BBR_LOWGAIN_FD             = 0x436
++	TCP_BBR_LOWGAIN_HALF           = 0x435
++	TCP_BBR_LOWGAIN_THRESH         = 0x434
++	TCP_BBR_MAX_RTO                = 0x439
++	TCP_BBR_MIN_RTO                = 0x438
++	TCP_BBR_ONE_RETRAN             = 0x431
++	TCP_BBR_PACE_CROSS             = 0x442
++	TCP_BBR_PACE_DEL_TAR           = 0x43f
++	TCP_BBR_PACE_PER_SEC           = 0x43e
++	TCP_BBR_PACE_SEG_MAX           = 0x440
++	TCP_BBR_PACE_SEG_MIN           = 0x441
++	TCP_BBR_PROBE_RTT_GAIN         = 0x44d
++	TCP_BBR_PROBE_RTT_INT          = 0x430
++	TCP_BBR_PROBE_RTT_LEN          = 0x44e
++	TCP_BBR_RACK_RTT_USE           = 0x44a
++	TCP_BBR_RECFORCE               = 0x42c
++	TCP_BBR_REC_OVER_HPTS          = 0x43a
++	TCP_BBR_RETRAN_WTSO            = 0x44b
++	TCP_BBR_RWND_IS_APP            = 0x42f
++	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d
++	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432
++	TCP_BBR_STARTUP_PG             = 0x42d
++	TCP_BBR_UNLIMITED              = 0x43b
++	TCP_BBR_USEDEL_RATE            = 0x437
++	TCP_BBR_USE_LOWGAIN            = 0x433
+ 	TCP_CA_NAME_MAX                = 0x10
+ 	TCP_CCALGOOPT                  = 0x41
+ 	TCP_CONGESTION                 = 0x40
++	TCP_DATA_AFTER_CLOSE           = 0x44c
++	TCP_DELACK                     = 0x48
+ 	TCP_FASTOPEN                   = 0x401
++	TCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10
++	TCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4
++	TCP_FASTOPEN_PSK_LEN           = 0x10
+ 	TCP_FUNCTION_BLK               = 0x2000
+ 	TCP_FUNCTION_NAME_LEN_MAX      = 0x20
+ 	TCP_INFO                       = 0x20
+@@ -1316,6 +1500,12 @@ const (
+ 	TCP_KEEPIDLE                   = 0x100
+ 	TCP_KEEPINIT                   = 0x80
+ 	TCP_KEEPINTVL                  = 0x200
++	TCP_LOG                        = 0x22
++	TCP_LOGBUF                     = 0x23
++	TCP_LOGDUMP                    = 0x25
++	TCP_LOGDUMPID                  = 0x26
++	TCP_LOGID                      = 0x24
++	TCP_LOG_ID_LEN                 = 0x40
+ 	TCP_MAXBURST                   = 0x4
+ 	TCP_MAXHLEN                    = 0x3c
+ 	TCP_MAXOLEN                    = 0x28
+@@ -1331,8 +1521,30 @@ const (
+ 	TCP_NOPUSH                     = 0x4
+ 	TCP_PCAP_IN                    = 0x1000
+ 	TCP_PCAP_OUT                   = 0x800
++	TCP_RACK_EARLY_RECOV           = 0x423
++	TCP_RACK_EARLY_SEG             = 0x424
++	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444
++	TCP_RACK_MIN_PACE              = 0x445
++	TCP_RACK_MIN_PACE_SEG          = 0x446
++	TCP_RACK_MIN_TO                = 0x422
++	TCP_RACK_PACE_ALWAYS           = 0x41f
++	TCP_RACK_PACE_MAX_SEG          = 0x41e
++	TCP_RACK_PACE_REDUCE           = 0x41d
++	TCP_RACK_PKT_DELAY             = 0x428
++	TCP_RACK_PROP                  = 0x41b
++	TCP_RACK_PROP_RATE             = 0x420
++	TCP_RACK_PRR_SENDALOT          = 0x421
++	TCP_RACK_REORD_FADE            = 0x426
++	TCP_RACK_REORD_THRESH          = 0x425
++	TCP_RACK_SESS_CWV              = 0x42a
++	TCP_RACK_TLP_INC_VAR           = 0x429
++	TCP_RACK_TLP_REDUCE            = 0x41c
++	TCP_RACK_TLP_THRESH            = 0x427
++	TCP_RACK_TLP_USE               = 0x447
+ 	TCP_VENDOR                     = 0x80000000
+ 	TCSAFLUSH                      = 0x2
++	TIMER_ABSTIME                  = 0x1
++	TIMER_RELTIME                  = 0x0
+ 	TIOCCBRK                       = 0x2000747a
+ 	TIOCCDTR                       = 0x20007478
+ 	TIOCCONS                       = 0x80047462
+@@ -1396,6 +1608,8 @@ const (
+ 	TIOCTIMESTAMP                  = 0x40087459
+ 	TIOCUCNTL                      = 0x80047466
+ 	TOSTOP                         = 0x400000
++	UTIME_NOW                      = -0x1
++	UTIME_OMIT                     = -0x2
+ 	VDISCARD                       = 0xf
+ 	VDSUSP                         = 0xb
+ 	VEOF                           = 0x0
+@@ -1407,6 +1621,8 @@ const (
+ 	VKILL                          = 0x5
+ 	VLNEXT                         = 0xe
+ 	VMIN                           = 0x10
++	VM_BCACHE_SIZE_MAX             = 0x70e0000
++	VM_SWZONE_SIZE_MAX             = 0x2280000
+ 	VQUIT                          = 0x9
+ 	VREPRINT                       = 0x6
+ 	VSTART                         = 0xc
+@@ -1569,138 +1785,146 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "ECANCELED", "operation canceled"},
++	{86, "EILSEQ", "illegal byte sequence"},
++	{87, "ENOATTR", "attribute not found"},
++	{88, "EDOOFUS", "programming error"},
++	{89, "EBADMSG", "bad message"},
++	{90, "EMULTIHOP", "multihop attempted"},
++	{91, "ENOLINK", "link has been severed"},
++	{92, "EPROTO", "protocol error"},
++	{93, "ENOTCAPABLE", "capabilities insufficient"},
++	{94, "ECAPMODE", "not permitted in capability mode"},
++	{95, "ENOTRECOVERABLE", "state not recoverable"},
++	{96, "EOWNERDEAD", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "unknown signal"},
++	{33, "SIGLIBRT", "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
+index ac094f9c..4acd101c 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build amd64,freebsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -351,8 +351,26 @@ const (
+ 	CSTOP                          = 0x13
+ 	CSTOPB                         = 0x400
+ 	CSUSP                          = 0x1a
++	CTL_HW                         = 0x6
++	CTL_KERN                       = 0x1
+ 	CTL_MAXNAME                    = 0x18
+ 	CTL_NET                        = 0x4
++	DIOCGATTR                      = 0xc148648e
++	DIOCGDELETE                    = 0x80106488
++	DIOCGFLUSH                     = 0x20006487
++	DIOCGFRONTSTUFF                = 0x40086486
++	DIOCGFWHEADS                   = 0x40046483
++	DIOCGFWSECTORS                 = 0x40046482
++	DIOCGIDENT                     = 0x41006489
++	DIOCGMEDIASIZE                 = 0x40086481
++	DIOCGPHYSPATH                  = 0x4400648d
++	DIOCGPROVIDERNAME              = 0x4400648a
++	DIOCGSECTORSIZE                = 0x40046480
++	DIOCGSTRIPEOFFSET              = 0x4008648c
++	DIOCGSTRIPESIZE                = 0x4008648b
++	DIOCSKERNELDUMP                = 0x80506490
++	DIOCSKERNELDUMP_FREEBSD11      = 0x80046485
++	DIOCZONECMD                    = 0xc080648f
+ 	DLT_A429                       = 0xb8
+ 	DLT_A653_ICM                   = 0xb9
+ 	DLT_AIRONET_HEADER             = 0x78
+@@ -377,11 +395,14 @@ const (
+ 	DLT_CHAOS                      = 0x5
+ 	DLT_CHDLC                      = 0x68
+ 	DLT_CISCO_IOS                  = 0x76
++	DLT_CLASS_NETBSD_RAWAF         = 0x2240000
+ 	DLT_C_HDLC                     = 0x68
+ 	DLT_C_HDLC_WITH_DIR            = 0xcd
+ 	DLT_DBUS                       = 0xe7
+ 	DLT_DECT                       = 0xdd
++	DLT_DISPLAYPORT_AUX            = 0x113
+ 	DLT_DOCSIS                     = 0x8f
++	DLT_DOCSIS31_XRA31             = 0x111
+ 	DLT_DVB_CI                     = 0xeb
+ 	DLT_ECONET                     = 0x73
+ 	DLT_EN10MB                     = 0x1
+@@ -391,6 +412,7 @@ const (
+ 	DLT_ERF                        = 0xc5
+ 	DLT_ERF_ETH                    = 0xaf
+ 	DLT_ERF_POS                    = 0xb0
++	DLT_ETHERNET_MPACKET           = 0x112
+ 	DLT_FC_2                       = 0xe0
+ 	DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1
+ 	DLT_FDDI                       = 0xa
+@@ -404,7 +426,6 @@ const (
+ 	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
+@@ -427,6 +448,7 @@ const (
+ 	DLT_IPV4                       = 0xe4
+ 	DLT_IPV6                       = 0xe5
+ 	DLT_IP_OVER_FC                 = 0x7a
++	DLT_ISO_14443                  = 0x108
+ 	DLT_JUNIPER_ATM1               = 0x89
+ 	DLT_JUNIPER_ATM2               = 0x87
+ 	DLT_JUNIPER_ATM_CEMIC          = 0xee
+@@ -459,8 +481,9 @@ const (
+ 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6
+ 	DLT_LINUX_SLL                  = 0x71
+ 	DLT_LOOP                       = 0x6c
++	DLT_LORATAP                    = 0x10e
+ 	DLT_LTALK                      = 0x72
+-	DLT_MATCHING_MAX               = 0x104
++	DLT_MATCHING_MAX               = 0x113
+ 	DLT_MATCHING_MIN               = 0x68
+ 	DLT_MFR                        = 0xb6
+ 	DLT_MOST                       = 0xd3
+@@ -476,14 +499,16 @@ const (
+ 	DLT_NFC_LLCP                   = 0xf5
+ 	DLT_NFLOG                      = 0xef
+ 	DLT_NG40                       = 0xf4
++	DLT_NORDIC_BLE                 = 0x110
+ 	DLT_NULL                       = 0x0
++	DLT_OPENFLOW                   = 0x10b
+ 	DLT_PCI_EXP                    = 0x7d
+ 	DLT_PFLOG                      = 0x75
+ 	DLT_PFSYNC                     = 0x79
+ 	DLT_PKTAP                      = 0x102
+ 	DLT_PPI                        = 0xc0
+ 	DLT_PPP                        = 0x9
+-	DLT_PPP_BSDOS                  = 0x10
++	DLT_PPP_BSDOS                  = 0xe
+ 	DLT_PPP_ETHER                  = 0x33
+ 	DLT_PPP_PPPD                   = 0xa6
+ 	DLT_PPP_SERIAL                 = 0x32
+@@ -494,19 +519,25 @@ const (
+ 	DLT_PRONET                     = 0x4
+ 	DLT_RAIF1                      = 0xc6
+ 	DLT_RAW                        = 0xc
++	DLT_RDS                        = 0x109
++	DLT_REDBACK_SMARTEDGE          = 0x20
+ 	DLT_RIO                        = 0x7c
+ 	DLT_RTAC_SERIAL                = 0xfa
+ 	DLT_SCCP                       = 0x8e
+ 	DLT_SCTP                       = 0xf8
++	DLT_SDLC                       = 0x10c
+ 	DLT_SITA                       = 0xc4
+ 	DLT_SLIP                       = 0x8
+-	DLT_SLIP_BSDOS                 = 0xf
++	DLT_SLIP_BSDOS                 = 0xd
+ 	DLT_STANAG_5066_D_PDU          = 0xed
+ 	DLT_SUNATM                     = 0x7b
+ 	DLT_SYMANTEC_FIREWALL          = 0x63
++	DLT_TI_LLN_SNIFFER             = 0x10d
+ 	DLT_TZSP                       = 0x80
+ 	DLT_USB                        = 0xba
+ 	DLT_USBPCAP                    = 0xf9
++	DLT_USB_DARWIN                 = 0x10a
++	DLT_USB_FREEBSD                = 0xba
+ 	DLT_USB_LINUX                  = 0xbd
+ 	DLT_USB_LINUX_MMAPPED          = 0xdc
+ 	DLT_USER0                      = 0x93
+@@ -525,10 +556,14 @@ const (
+ 	DLT_USER7                      = 0x9a
+ 	DLT_USER8                      = 0x9b
+ 	DLT_USER9                      = 0x9c
++	DLT_VSOCK                      = 0x10f
++	DLT_WATTSTOPPER_DLM            = 0x107
+ 	DLT_WIHART                     = 0xdf
+ 	DLT_WIRESHARK_UPPER_PDU        = 0xfc
+ 	DLT_X2E_SERIAL                 = 0xd5
+ 	DLT_X2E_XORAYA                 = 0xd6
++	DLT_ZWAVE_R1_R2                = 0x105
++	DLT_ZWAVE_R3                   = 0x106
+ 	DT_BLK                         = 0x6
+ 	DT_CHR                         = 0x2
+ 	DT_DIR                         = 0x4
+@@ -546,6 +581,7 @@ const (
+ 	ECHONL                         = 0x10
+ 	ECHOPRT                        = 0x20
+ 	EVFILT_AIO                     = -0x3
++	EVFILT_EMPTY                   = -0xd
+ 	EVFILT_FS                      = -0x9
+ 	EVFILT_LIO                     = -0xa
+ 	EVFILT_PROC                    = -0x5
+@@ -553,11 +589,12 @@ const (
+ 	EVFILT_READ                    = -0x1
+ 	EVFILT_SENDFILE                = -0xc
+ 	EVFILT_SIGNAL                  = -0x6
+-	EVFILT_SYSCOUNT                = 0xc
++	EVFILT_SYSCOUNT                = 0xd
+ 	EVFILT_TIMER                   = -0x7
+ 	EVFILT_USER                    = -0xb
+ 	EVFILT_VNODE                   = -0x4
+ 	EVFILT_WRITE                   = -0x2
++	EVNAMEMAP_NAME_SIZE            = 0x40
+ 	EV_ADD                         = 0x1
+ 	EV_CLEAR                       = 0x20
+ 	EV_DELETE                      = 0x2
+@@ -574,6 +611,7 @@ const (
+ 	EV_RECEIPT                     = 0x40
+ 	EV_SYSFLAGS                    = 0xf000
+ 	EXTA                           = 0x4b00
++	EXTATTR_MAXNAMELEN             = 0xff
+ 	EXTATTR_NAMESPACE_EMPTY        = 0x0
+ 	EXTATTR_NAMESPACE_SYSTEM       = 0x2
+ 	EXTATTR_NAMESPACE_USER         = 0x1
+@@ -608,12 +646,14 @@ const (
+ 	F_UNLCKSYS                     = 0x4
+ 	F_WRLCK                        = 0x3
+ 	HUPCL                          = 0x4000
++	HW_MACHINE                     = 0x1
+ 	ICANON                         = 0x100
+ 	ICMP6_FILTER                   = 0x12
+ 	ICRNL                          = 0x100
+ 	IEXTEN                         = 0x400
+ 	IFAN_ARRIVAL                   = 0x0
+ 	IFAN_DEPARTURE                 = 0x1
++	IFCAP_WOL_MAGIC                = 0x2000
+ 	IFF_ALLMULTI                   = 0x200
+ 	IFF_ALTPHYS                    = 0x4000
+ 	IFF_BROADCAST                  = 0x2
+@@ -630,6 +670,7 @@ const (
+ 	IFF_MONITOR                    = 0x40000
+ 	IFF_MULTICAST                  = 0x8000
+ 	IFF_NOARP                      = 0x80
++	IFF_NOGROUP                    = 0x800000
+ 	IFF_OACTIVE                    = 0x400
+ 	IFF_POINTOPOINT                = 0x10
+ 	IFF_PPROMISC                   = 0x20000
+@@ -804,6 +845,7 @@ const (
+ 	IPV6_DSTOPTS                   = 0x32
+ 	IPV6_FLOWID                    = 0x43
+ 	IPV6_FLOWINFO_MASK             = 0xffffff0f
++	IPV6_FLOWLABEL_LEN             = 0x14
+ 	IPV6_FLOWLABEL_MASK            = 0xffff0f00
+ 	IPV6_FLOWTYPE                  = 0x44
+ 	IPV6_FRAGTTL                   = 0x78
+@@ -824,13 +866,13 @@ const (
+ 	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_ORIGDSTADDR               = 0x48
+ 	IPV6_PATHMTU                   = 0x2c
+ 	IPV6_PKTINFO                   = 0x2e
+ 	IPV6_PORTRANGE                 = 0xe
+@@ -842,6 +884,7 @@ const (
+ 	IPV6_RECVFLOWID                = 0x46
+ 	IPV6_RECVHOPLIMIT              = 0x25
+ 	IPV6_RECVHOPOPTS               = 0x27
++	IPV6_RECVORIGDSTADDR           = 0x48
+ 	IPV6_RECVPATHMTU               = 0x2b
+ 	IPV6_RECVPKTINFO               = 0x24
+ 	IPV6_RECVRSSBUCKETID           = 0x47
+@@ -902,10 +945,8 @@ const (
+ 	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
+@@ -915,6 +956,7 @@ const (
+ 	IP_OFFMASK                     = 0x1fff
+ 	IP_ONESBCAST                   = 0x17
+ 	IP_OPTIONS                     = 0x1
++	IP_ORIGDSTADDR                 = 0x1b
+ 	IP_PORTRANGE                   = 0x13
+ 	IP_PORTRANGE_DEFAULT           = 0x0
+ 	IP_PORTRANGE_HIGH              = 0x1
+@@ -923,6 +965,7 @@ const (
+ 	IP_RECVFLOWID                  = 0x5d
+ 	IP_RECVIF                      = 0x14
+ 	IP_RECVOPTS                    = 0x5
++	IP_RECVORIGDSTADDR             = 0x1b
+ 	IP_RECVRETOPTS                 = 0x6
+ 	IP_RECVRSSBUCKETID             = 0x5e
+ 	IP_RECVTOS                     = 0x44
+@@ -944,6 +987,10 @@ const (
+ 	IXANY                          = 0x800
+ 	IXOFF                          = 0x400
+ 	IXON                           = 0x200
++	KERN_HOSTNAME                  = 0xa
++	KERN_OSRELEASE                 = 0x2
++	KERN_OSTYPE                    = 0x1
++	KERN_VERSION                   = 0x4
+ 	LOCK_EX                        = 0x2
+ 	LOCK_NB                        = 0x4
+ 	LOCK_SH                        = 0x1
+@@ -969,6 +1016,7 @@ const (
+ 	MAP_EXCL                       = 0x4000
+ 	MAP_FILE                       = 0x0
+ 	MAP_FIXED                      = 0x10
++	MAP_GUARD                      = 0x2000
+ 	MAP_HASSEMAPHORE               = 0x200
+ 	MAP_NOCORE                     = 0x20000
+ 	MAP_NOSYNC                     = 0x800
+@@ -980,8 +1028,62 @@ const (
+ 	MAP_RESERVED0100               = 0x100
+ 	MAP_SHARED                     = 0x1
+ 	MAP_STACK                      = 0x400
++	MCAST_BLOCK_SOURCE             = 0x54
++	MCAST_EXCLUDE                  = 0x2
++	MCAST_INCLUDE                  = 0x1
++	MCAST_JOIN_GROUP               = 0x50
++	MCAST_JOIN_SOURCE_GROUP        = 0x52
++	MCAST_LEAVE_GROUP              = 0x51
++	MCAST_LEAVE_SOURCE_GROUP       = 0x53
++	MCAST_UNBLOCK_SOURCE           = 0x55
++	MCAST_UNDEFINED                = 0x0
+ 	MCL_CURRENT                    = 0x1
+ 	MCL_FUTURE                     = 0x2
++	MNT_ACLS                       = 0x8000000
++	MNT_ASYNC                      = 0x40
++	MNT_AUTOMOUNTED                = 0x200000000
++	MNT_BYFSID                     = 0x8000000
++	MNT_CMDFLAGS                   = 0xd0f0000
++	MNT_DEFEXPORTED                = 0x200
++	MNT_DELEXPORT                  = 0x20000
++	MNT_EXKERB                     = 0x800
++	MNT_EXPORTANON                 = 0x400
++	MNT_EXPORTED                   = 0x100
++	MNT_EXPUBLIC                   = 0x20000000
++	MNT_EXRDONLY                   = 0x80
++	MNT_FORCE                      = 0x80000
++	MNT_GJOURNAL                   = 0x2000000
++	MNT_IGNORE                     = 0x800000
++	MNT_LAZY                       = 0x3
++	MNT_LOCAL                      = 0x1000
++	MNT_MULTILABEL                 = 0x4000000
++	MNT_NFS4ACLS                   = 0x10
++	MNT_NOATIME                    = 0x10000000
++	MNT_NOCLUSTERR                 = 0x40000000
++	MNT_NOCLUSTERW                 = 0x80000000
++	MNT_NOEXEC                     = 0x4
++	MNT_NONBUSY                    = 0x4000000
++	MNT_NOSUID                     = 0x8
++	MNT_NOSYMFOLLOW                = 0x400000
++	MNT_NOWAIT                     = 0x2
++	MNT_QUOTA                      = 0x2000
++	MNT_RDONLY                     = 0x1
++	MNT_RELOAD                     = 0x40000
++	MNT_ROOTFS                     = 0x4000
++	MNT_SNAPSHOT                   = 0x1000000
++	MNT_SOFTDEP                    = 0x200000
++	MNT_SUIDDIR                    = 0x100000
++	MNT_SUJ                        = 0x100000000
++	MNT_SUSPEND                    = 0x4
++	MNT_SYNCHRONOUS                = 0x2
++	MNT_UNION                      = 0x20
++	MNT_UNTRUSTED                  = 0x800000000
++	MNT_UPDATE                     = 0x10000
++	MNT_UPDATEMASK                 = 0xad8d0807e
++	MNT_USER                       = 0x8000
++	MNT_VERIFIED                   = 0x400000000
++	MNT_VISFLAGMASK                = 0xffef0ffff
++	MNT_WAIT                       = 0x1
+ 	MSG_CMSG_CLOEXEC               = 0x40000
+ 	MSG_COMPAT                     = 0x8000
+ 	MSG_CTRUNC                     = 0x20
+@@ -1006,8 +1108,10 @@ const (
+ 	NET_RT_IFLIST                  = 0x3
+ 	NET_RT_IFLISTL                 = 0x5
+ 	NET_RT_IFMALIST                = 0x4
++	NFDBITS                        = 0x40
+ 	NOFLSH                         = 0x80000000
+ 	NOKERNINFO                     = 0x2000000
++	NOTE_ABSTIME                   = 0x10
+ 	NOTE_ATTRIB                    = 0x8
+ 	NOTE_CHILD                     = 0x4
+ 	NOTE_CLOSE                     = 0x100
+@@ -1162,7 +1266,6 @@ const (
+ 	RTV_WEIGHT                     = 0x100
+ 	RT_ALL_FIBS                    = -0x1
+ 	RT_BLACKHOLE                   = 0x40
+-	RT_CACHING_CONTEXT             = 0x1
+ 	RT_DEFAULT_FIB                 = 0x0
+ 	RT_HAS_GW                      = 0x80
+ 	RT_HAS_HEADER                  = 0x10
+@@ -1172,15 +1275,17 @@ const (
+ 	RT_LLE_CACHE                   = 0x100
+ 	RT_MAY_LOOP                    = 0x8
+ 	RT_MAY_LOOP_BIT                = 0x3
+-	RT_NORTREF                     = 0x2
+ 	RT_REJECT                      = 0x20
+ 	RUSAGE_CHILDREN                = -0x1
+ 	RUSAGE_SELF                    = 0x0
+ 	RUSAGE_THREAD                  = 0x1
+ 	SCM_BINTIME                    = 0x4
+ 	SCM_CREDS                      = 0x3
++	SCM_MONOTONIC                  = 0x6
++	SCM_REALTIME                   = 0x5
+ 	SCM_RIGHTS                     = 0x1
+ 	SCM_TIMESTAMP                  = 0x2
++	SCM_TIME_INFO                  = 0x7
+ 	SHUT_RD                        = 0x0
+ 	SHUT_RDWR                      = 0x2
+ 	SHUT_WR                        = 0x1
+@@ -1196,6 +1301,7 @@ const (
+ 	SIOCGETSGCNT                   = 0xc0207210
+ 	SIOCGETVIFCNT                  = 0xc028720f
+ 	SIOCGHIWAT                     = 0x40047301
++	SIOCGHWADDR                    = 0xc020693e
+ 	SIOCGI2C                       = 0xc020693d
+ 	SIOCGIFADDR                    = 0xc0206921
+ 	SIOCGIFBRDADDR                 = 0xc0206923
+@@ -1217,8 +1323,11 @@ const (
+ 	SIOCGIFPDSTADDR                = 0xc0206948
+ 	SIOCGIFPHYS                    = 0xc0206935
+ 	SIOCGIFPSRCADDR                = 0xc0206947
++	SIOCGIFRSSHASH                 = 0xc0186997
++	SIOCGIFRSSKEY                  = 0xc0946996
+ 	SIOCGIFSTATUS                  = 0xc331693b
+ 	SIOCGIFXMEDIA                  = 0xc030698b
++	SIOCGLANPCP                    = 0xc0206998
+ 	SIOCGLOWAT                     = 0x40047303
+ 	SIOCGPGRP                      = 0x40047309
+ 	SIOCGPRIVATE_0                 = 0xc0206950
+@@ -1249,6 +1358,7 @@ const (
+ 	SIOCSIFPHYS                    = 0x80206936
+ 	SIOCSIFRVNET                   = 0xc020695b
+ 	SIOCSIFVNET                    = 0xc020695a
++	SIOCSLANPCP                    = 0x80206999
+ 	SIOCSLOWAT                     = 0x80047302
+ 	SIOCSPGRP                      = 0x80047308
+ 	SIOCSTUNFIB                    = 0x8020695f
+@@ -1267,6 +1377,7 @@ const (
+ 	SO_BINTIME                     = 0x2000
+ 	SO_BROADCAST                   = 0x20
+ 	SO_DEBUG                       = 0x1
++	SO_DOMAIN                      = 0x1019
+ 	SO_DONTROUTE                   = 0x10
+ 	SO_ERROR                       = 0x1007
+ 	SO_KEEPALIVE                   = 0x8
+@@ -1275,6 +1386,7 @@ const (
+ 	SO_LISTENINCQLEN               = 0x1013
+ 	SO_LISTENQLEN                  = 0x1012
+ 	SO_LISTENQLIMIT                = 0x1011
++	SO_MAX_PACING_RATE             = 0x1018
+ 	SO_NOSIGPIPE                   = 0x800
+ 	SO_NO_DDP                      = 0x8000
+ 	SO_NO_OFFLOAD                  = 0x4000
+@@ -1287,15 +1399,52 @@ const (
+ 	SO_RCVTIMEO                    = 0x1006
+ 	SO_REUSEADDR                   = 0x4
+ 	SO_REUSEPORT                   = 0x200
++	SO_REUSEPORT_LB                = 0x10000
+ 	SO_SETFIB                      = 0x1014
+ 	SO_SNDBUF                      = 0x1001
+ 	SO_SNDLOWAT                    = 0x1003
+ 	SO_SNDTIMEO                    = 0x1005
+ 	SO_TIMESTAMP                   = 0x400
++	SO_TS_BINTIME                  = 0x1
++	SO_TS_CLOCK                    = 0x1017
++	SO_TS_CLOCK_MAX                = 0x3
++	SO_TS_DEFAULT                  = 0x0
++	SO_TS_MONOTONIC                = 0x3
++	SO_TS_REALTIME                 = 0x2
++	SO_TS_REALTIME_MICRO           = 0x0
+ 	SO_TYPE                        = 0x1008
+ 	SO_USELOOPBACK                 = 0x40
+ 	SO_USER_COOKIE                 = 0x1015
+ 	SO_VENDOR                      = 0x80000000
++	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
+ 	TAB0                           = 0x0
+ 	TAB3                           = 0x4
+ 	TABDLY                         = 0x4
+@@ -1306,10 +1455,45 @@ const (
+ 	TCOFLUSH                       = 0x2
+ 	TCOOFF                         = 0x1
+ 	TCOON                          = 0x2
++	TCP_BBR_ACK_COMP_ALG           = 0x448
++	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c
++	TCP_BBR_DRAIN_PG               = 0x42e
++	TCP_BBR_EXTRA_GAIN             = 0x449
++	TCP_BBR_IWINTSO                = 0x42b
++	TCP_BBR_LOWGAIN_FD             = 0x436
++	TCP_BBR_LOWGAIN_HALF           = 0x435
++	TCP_BBR_LOWGAIN_THRESH         = 0x434
++	TCP_BBR_MAX_RTO                = 0x439
++	TCP_BBR_MIN_RTO                = 0x438
++	TCP_BBR_ONE_RETRAN             = 0x431
++	TCP_BBR_PACE_CROSS             = 0x442
++	TCP_BBR_PACE_DEL_TAR           = 0x43f
++	TCP_BBR_PACE_PER_SEC           = 0x43e
++	TCP_BBR_PACE_SEG_MAX           = 0x440
++	TCP_BBR_PACE_SEG_MIN           = 0x441
++	TCP_BBR_PROBE_RTT_GAIN         = 0x44d
++	TCP_BBR_PROBE_RTT_INT          = 0x430
++	TCP_BBR_PROBE_RTT_LEN          = 0x44e
++	TCP_BBR_RACK_RTT_USE           = 0x44a
++	TCP_BBR_RECFORCE               = 0x42c
++	TCP_BBR_REC_OVER_HPTS          = 0x43a
++	TCP_BBR_RETRAN_WTSO            = 0x44b
++	TCP_BBR_RWND_IS_APP            = 0x42f
++	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d
++	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432
++	TCP_BBR_STARTUP_PG             = 0x42d
++	TCP_BBR_UNLIMITED              = 0x43b
++	TCP_BBR_USEDEL_RATE            = 0x437
++	TCP_BBR_USE_LOWGAIN            = 0x433
+ 	TCP_CA_NAME_MAX                = 0x10
+ 	TCP_CCALGOOPT                  = 0x41
+ 	TCP_CONGESTION                 = 0x40
++	TCP_DATA_AFTER_CLOSE           = 0x44c
++	TCP_DELACK                     = 0x48
+ 	TCP_FASTOPEN                   = 0x401
++	TCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10
++	TCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4
++	TCP_FASTOPEN_PSK_LEN           = 0x10
+ 	TCP_FUNCTION_BLK               = 0x2000
+ 	TCP_FUNCTION_NAME_LEN_MAX      = 0x20
+ 	TCP_INFO                       = 0x20
+@@ -1317,6 +1501,12 @@ const (
+ 	TCP_KEEPIDLE                   = 0x100
+ 	TCP_KEEPINIT                   = 0x80
+ 	TCP_KEEPINTVL                  = 0x200
++	TCP_LOG                        = 0x22
++	TCP_LOGBUF                     = 0x23
++	TCP_LOGDUMP                    = 0x25
++	TCP_LOGDUMPID                  = 0x26
++	TCP_LOGID                      = 0x24
++	TCP_LOG_ID_LEN                 = 0x40
+ 	TCP_MAXBURST                   = 0x4
+ 	TCP_MAXHLEN                    = 0x3c
+ 	TCP_MAXOLEN                    = 0x28
+@@ -1332,8 +1522,30 @@ const (
+ 	TCP_NOPUSH                     = 0x4
+ 	TCP_PCAP_IN                    = 0x1000
+ 	TCP_PCAP_OUT                   = 0x800
++	TCP_RACK_EARLY_RECOV           = 0x423
++	TCP_RACK_EARLY_SEG             = 0x424
++	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444
++	TCP_RACK_MIN_PACE              = 0x445
++	TCP_RACK_MIN_PACE_SEG          = 0x446
++	TCP_RACK_MIN_TO                = 0x422
++	TCP_RACK_PACE_ALWAYS           = 0x41f
++	TCP_RACK_PACE_MAX_SEG          = 0x41e
++	TCP_RACK_PACE_REDUCE           = 0x41d
++	TCP_RACK_PKT_DELAY             = 0x428
++	TCP_RACK_PROP                  = 0x41b
++	TCP_RACK_PROP_RATE             = 0x420
++	TCP_RACK_PRR_SENDALOT          = 0x421
++	TCP_RACK_REORD_FADE            = 0x426
++	TCP_RACK_REORD_THRESH          = 0x425
++	TCP_RACK_SESS_CWV              = 0x42a
++	TCP_RACK_TLP_INC_VAR           = 0x429
++	TCP_RACK_TLP_REDUCE            = 0x41c
++	TCP_RACK_TLP_THRESH            = 0x427
++	TCP_RACK_TLP_USE               = 0x447
+ 	TCP_VENDOR                     = 0x80000000
+ 	TCSAFLUSH                      = 0x2
++	TIMER_ABSTIME                  = 0x1
++	TIMER_RELTIME                  = 0x0
+ 	TIOCCBRK                       = 0x2000747a
+ 	TIOCCDTR                       = 0x20007478
+ 	TIOCCONS                       = 0x80047462
+@@ -1397,6 +1609,8 @@ const (
+ 	TIOCTIMESTAMP                  = 0x40107459
+ 	TIOCUCNTL                      = 0x80047466
+ 	TOSTOP                         = 0x400000
++	UTIME_NOW                      = -0x1
++	UTIME_OMIT                     = -0x2
+ 	VDISCARD                       = 0xf
+ 	VDSUSP                         = 0xb
+ 	VEOF                           = 0x0
+@@ -1570,138 +1784,146 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "ECANCELED", "operation canceled"},
++	{86, "EILSEQ", "illegal byte sequence"},
++	{87, "ENOATTR", "attribute not found"},
++	{88, "EDOOFUS", "programming error"},
++	{89, "EBADMSG", "bad message"},
++	{90, "EMULTIHOP", "multihop attempted"},
++	{91, "ENOLINK", "link has been severed"},
++	{92, "EPROTO", "protocol error"},
++	{93, "ENOTCAPABLE", "capabilities insufficient"},
++	{94, "ECAPMODE", "not permitted in capability mode"},
++	{95, "ENOTRECOVERABLE", "state not recoverable"},
++	{96, "EOWNERDEAD", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "unknown signal"},
++	{33, "SIGLIBRT", "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
+index c5c6f13e..e4719873 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
+@@ -3,7 +3,7 @@
+ 
+ // +build arm,freebsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- _const.go
+ 
+ package unix
+@@ -351,8 +351,26 @@ const (
+ 	CSTOP                          = 0x13
+ 	CSTOPB                         = 0x400
+ 	CSUSP                          = 0x1a
++	CTL_HW                         = 0x6
++	CTL_KERN                       = 0x1
+ 	CTL_MAXNAME                    = 0x18
+ 	CTL_NET                        = 0x4
++	DIOCGATTR                      = 0xc144648e
++	DIOCGDELETE                    = 0x80106488
++	DIOCGFLUSH                     = 0x20006487
++	DIOCGFRONTSTUFF                = 0x40086486
++	DIOCGFWHEADS                   = 0x40046483
++	DIOCGFWSECTORS                 = 0x40046482
++	DIOCGIDENT                     = 0x41006489
++	DIOCGMEDIASIZE                 = 0x40086481
++	DIOCGPHYSPATH                  = 0x4400648d
++	DIOCGPROVIDERNAME              = 0x4400648a
++	DIOCGSECTORSIZE                = 0x40046480
++	DIOCGSTRIPEOFFSET              = 0x4008648c
++	DIOCGSTRIPESIZE                = 0x4008648b
++	DIOCSKERNELDUMP                = 0x804c6490
++	DIOCSKERNELDUMP_FREEBSD11      = 0x80046485
++	DIOCZONECMD                    = 0xc06c648f
+ 	DLT_A429                       = 0xb8
+ 	DLT_A653_ICM                   = 0xb9
+ 	DLT_AIRONET_HEADER             = 0x78
+@@ -615,6 +633,7 @@ const (
+ 	F_UNLCKSYS                     = 0x4
+ 	F_WRLCK                        = 0x3
+ 	HUPCL                          = 0x4000
++	HW_MACHINE                     = 0x1
+ 	ICANON                         = 0x100
+ 	ICMP6_FILTER                   = 0x12
+ 	ICRNL                          = 0x100
+@@ -951,6 +970,10 @@ const (
+ 	IXANY                          = 0x800
+ 	IXOFF                          = 0x400
+ 	IXON                           = 0x200
++	KERN_HOSTNAME                  = 0xa
++	KERN_OSRELEASE                 = 0x2
++	KERN_OSTYPE                    = 0x1
++	KERN_VERSION                   = 0x4
+ 	LOCK_EX                        = 0x2
+ 	LOCK_NB                        = 0x4
+ 	LOCK_SH                        = 0x1
+@@ -989,6 +1012,49 @@ const (
+ 	MAP_STACK                      = 0x400
+ 	MCL_CURRENT                    = 0x1
+ 	MCL_FUTURE                     = 0x2
++	MNT_ACLS                       = 0x8000000
++	MNT_ASYNC                      = 0x40
++	MNT_AUTOMOUNTED                = 0x200000000
++	MNT_BYFSID                     = 0x8000000
++	MNT_CMDFLAGS                   = 0xd0f0000
++	MNT_DEFEXPORTED                = 0x200
++	MNT_DELEXPORT                  = 0x20000
++	MNT_EXKERB                     = 0x800
++	MNT_EXPORTANON                 = 0x400
++	MNT_EXPORTED                   = 0x100
++	MNT_EXPUBLIC                   = 0x20000000
++	MNT_EXRDONLY                   = 0x80
++	MNT_FORCE                      = 0x80000
++	MNT_GJOURNAL                   = 0x2000000
++	MNT_IGNORE                     = 0x800000
++	MNT_LAZY                       = 0x3
++	MNT_LOCAL                      = 0x1000
++	MNT_MULTILABEL                 = 0x4000000
++	MNT_NFS4ACLS                   = 0x10
++	MNT_NOATIME                    = 0x10000000
++	MNT_NOCLUSTERR                 = 0x40000000
++	MNT_NOCLUSTERW                 = 0x80000000
++	MNT_NOEXEC                     = 0x4
++	MNT_NONBUSY                    = 0x4000000
++	MNT_NOSUID                     = 0x8
++	MNT_NOSYMFOLLOW                = 0x400000
++	MNT_NOWAIT                     = 0x2
++	MNT_QUOTA                      = 0x2000
++	MNT_RDONLY                     = 0x1
++	MNT_RELOAD                     = 0x40000
++	MNT_ROOTFS                     = 0x4000
++	MNT_SNAPSHOT                   = 0x1000000
++	MNT_SOFTDEP                    = 0x200000
++	MNT_SUIDDIR                    = 0x100000
++	MNT_SUJ                        = 0x100000000
++	MNT_SUSPEND                    = 0x4
++	MNT_SYNCHRONOUS                = 0x2
++	MNT_UNION                      = 0x20
++	MNT_UPDATE                     = 0x10000
++	MNT_UPDATEMASK                 = 0x2d8d0807e
++	MNT_USER                       = 0x8000
++	MNT_VISFLAGMASK                = 0x3fef0ffff
++	MNT_WAIT                       = 0x1
+ 	MSG_CMSG_CLOEXEC               = 0x40000
+ 	MSG_COMPAT                     = 0x8000
+ 	MSG_CTRUNC                     = 0x20
+@@ -1013,6 +1079,7 @@ const (
+ 	NET_RT_IFLIST                  = 0x3
+ 	NET_RT_IFLISTL                 = 0x5
+ 	NET_RT_IFMALIST                = 0x4
++	NFDBITS                        = 0x20
+ 	NOFLSH                         = 0x80000000
+ 	NOKERNINFO                     = 0x2000000
+ 	NOTE_ATTRIB                    = 0x8
+@@ -1304,6 +1371,35 @@ const (
+ 	SO_USELOOPBACK                 = 0x40
+ 	SO_USER_COOKIE                 = 0x1015
+ 	SO_VENDOR                      = 0x80000000
++	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
+ 	TAB0                           = 0x0
+ 	TAB3                           = 0x4
+ 	TABDLY                         = 0x4
+@@ -1578,138 +1674,146 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "ECANCELED", "operation canceled"},
++	{86, "EILSEQ", "illegal byte sequence"},
++	{87, "ENOATTR", "attribute not found"},
++	{88, "EDOOFUS", "programming error"},
++	{89, "EBADMSG", "bad message"},
++	{90, "EMULTIHOP", "multihop attempted"},
++	{91, "ENOLINK", "link has been severed"},
++	{92, "EPROTO", "protocol error"},
++	{93, "ENOTCAPABLE", "capabilities insufficient"},
++	{94, "ECAPMODE", "not permitted in capability mode"},
++	{95, "ENOTRECOVERABLE", "state not recoverable"},
++	{96, "EOWNERDEAD", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "unknown signal"},
++	{33, "SIGLIBRT", "unknown signal"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+similarity index 80%
+copy from vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+index ac094f9c..5e49769d 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build amd64,freebsd
++// +build arm64,freebsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -351,8 +351,26 @@ const (
+ 	CSTOP                          = 0x13
+ 	CSTOPB                         = 0x400
+ 	CSUSP                          = 0x1a
++	CTL_HW                         = 0x6
++	CTL_KERN                       = 0x1
+ 	CTL_MAXNAME                    = 0x18
+ 	CTL_NET                        = 0x4
++	DIOCGATTR                      = 0xc148648e
++	DIOCGDELETE                    = 0x80106488
++	DIOCGFLUSH                     = 0x20006487
++	DIOCGFRONTSTUFF                = 0x40086486
++	DIOCGFWHEADS                   = 0x40046483
++	DIOCGFWSECTORS                 = 0x40046482
++	DIOCGIDENT                     = 0x41006489
++	DIOCGMEDIASIZE                 = 0x40086481
++	DIOCGPHYSPATH                  = 0x4400648d
++	DIOCGPROVIDERNAME              = 0x4400648a
++	DIOCGSECTORSIZE                = 0x40046480
++	DIOCGSTRIPEOFFSET              = 0x4008648c
++	DIOCGSTRIPESIZE                = 0x4008648b
++	DIOCSKERNELDUMP                = 0x80506490
++	DIOCSKERNELDUMP_FREEBSD11      = 0x80046485
++	DIOCZONECMD                    = 0xc080648f
+ 	DLT_A429                       = 0xb8
+ 	DLT_A653_ICM                   = 0xb9
+ 	DLT_AIRONET_HEADER             = 0x78
+@@ -377,11 +395,14 @@ const (
+ 	DLT_CHAOS                      = 0x5
+ 	DLT_CHDLC                      = 0x68
+ 	DLT_CISCO_IOS                  = 0x76
++	DLT_CLASS_NETBSD_RAWAF         = 0x2240000
+ 	DLT_C_HDLC                     = 0x68
+ 	DLT_C_HDLC_WITH_DIR            = 0xcd
+ 	DLT_DBUS                       = 0xe7
+ 	DLT_DECT                       = 0xdd
++	DLT_DISPLAYPORT_AUX            = 0x113
+ 	DLT_DOCSIS                     = 0x8f
++	DLT_DOCSIS31_XRA31             = 0x111
+ 	DLT_DVB_CI                     = 0xeb
+ 	DLT_ECONET                     = 0x73
+ 	DLT_EN10MB                     = 0x1
+@@ -391,6 +412,7 @@ const (
+ 	DLT_ERF                        = 0xc5
+ 	DLT_ERF_ETH                    = 0xaf
+ 	DLT_ERF_POS                    = 0xb0
++	DLT_ETHERNET_MPACKET           = 0x112
+ 	DLT_FC_2                       = 0xe0
+ 	DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1
+ 	DLT_FDDI                       = 0xa
+@@ -404,7 +426,6 @@ const (
+ 	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
+@@ -427,6 +448,7 @@ const (
+ 	DLT_IPV4                       = 0xe4
+ 	DLT_IPV6                       = 0xe5
+ 	DLT_IP_OVER_FC                 = 0x7a
++	DLT_ISO_14443                  = 0x108
+ 	DLT_JUNIPER_ATM1               = 0x89
+ 	DLT_JUNIPER_ATM2               = 0x87
+ 	DLT_JUNIPER_ATM_CEMIC          = 0xee
+@@ -459,8 +481,9 @@ const (
+ 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6
+ 	DLT_LINUX_SLL                  = 0x71
+ 	DLT_LOOP                       = 0x6c
++	DLT_LORATAP                    = 0x10e
+ 	DLT_LTALK                      = 0x72
+-	DLT_MATCHING_MAX               = 0x104
++	DLT_MATCHING_MAX               = 0x113
+ 	DLT_MATCHING_MIN               = 0x68
+ 	DLT_MFR                        = 0xb6
+ 	DLT_MOST                       = 0xd3
+@@ -476,14 +499,16 @@ const (
+ 	DLT_NFC_LLCP                   = 0xf5
+ 	DLT_NFLOG                      = 0xef
+ 	DLT_NG40                       = 0xf4
++	DLT_NORDIC_BLE                 = 0x110
+ 	DLT_NULL                       = 0x0
++	DLT_OPENFLOW                   = 0x10b
+ 	DLT_PCI_EXP                    = 0x7d
+ 	DLT_PFLOG                      = 0x75
+ 	DLT_PFSYNC                     = 0x79
+ 	DLT_PKTAP                      = 0x102
+ 	DLT_PPI                        = 0xc0
+ 	DLT_PPP                        = 0x9
+-	DLT_PPP_BSDOS                  = 0x10
++	DLT_PPP_BSDOS                  = 0xe
+ 	DLT_PPP_ETHER                  = 0x33
+ 	DLT_PPP_PPPD                   = 0xa6
+ 	DLT_PPP_SERIAL                 = 0x32
+@@ -494,19 +519,25 @@ const (
+ 	DLT_PRONET                     = 0x4
+ 	DLT_RAIF1                      = 0xc6
+ 	DLT_RAW                        = 0xc
++	DLT_RDS                        = 0x109
++	DLT_REDBACK_SMARTEDGE          = 0x20
+ 	DLT_RIO                        = 0x7c
+ 	DLT_RTAC_SERIAL                = 0xfa
+ 	DLT_SCCP                       = 0x8e
+ 	DLT_SCTP                       = 0xf8
++	DLT_SDLC                       = 0x10c
+ 	DLT_SITA                       = 0xc4
+ 	DLT_SLIP                       = 0x8
+-	DLT_SLIP_BSDOS                 = 0xf
++	DLT_SLIP_BSDOS                 = 0xd
+ 	DLT_STANAG_5066_D_PDU          = 0xed
+ 	DLT_SUNATM                     = 0x7b
+ 	DLT_SYMANTEC_FIREWALL          = 0x63
++	DLT_TI_LLN_SNIFFER             = 0x10d
+ 	DLT_TZSP                       = 0x80
+ 	DLT_USB                        = 0xba
+ 	DLT_USBPCAP                    = 0xf9
++	DLT_USB_DARWIN                 = 0x10a
++	DLT_USB_FREEBSD                = 0xba
+ 	DLT_USB_LINUX                  = 0xbd
+ 	DLT_USB_LINUX_MMAPPED          = 0xdc
+ 	DLT_USER0                      = 0x93
+@@ -525,10 +556,14 @@ const (
+ 	DLT_USER7                      = 0x9a
+ 	DLT_USER8                      = 0x9b
+ 	DLT_USER9                      = 0x9c
++	DLT_VSOCK                      = 0x10f
++	DLT_WATTSTOPPER_DLM            = 0x107
+ 	DLT_WIHART                     = 0xdf
+ 	DLT_WIRESHARK_UPPER_PDU        = 0xfc
+ 	DLT_X2E_SERIAL                 = 0xd5
+ 	DLT_X2E_XORAYA                 = 0xd6
++	DLT_ZWAVE_R1_R2                = 0x105
++	DLT_ZWAVE_R3                   = 0x106
+ 	DT_BLK                         = 0x6
+ 	DT_CHR                         = 0x2
+ 	DT_DIR                         = 0x4
+@@ -546,6 +581,7 @@ const (
+ 	ECHONL                         = 0x10
+ 	ECHOPRT                        = 0x20
+ 	EVFILT_AIO                     = -0x3
++	EVFILT_EMPTY                   = -0xd
+ 	EVFILT_FS                      = -0x9
+ 	EVFILT_LIO                     = -0xa
+ 	EVFILT_PROC                    = -0x5
+@@ -553,11 +589,12 @@ const (
+ 	EVFILT_READ                    = -0x1
+ 	EVFILT_SENDFILE                = -0xc
+ 	EVFILT_SIGNAL                  = -0x6
+-	EVFILT_SYSCOUNT                = 0xc
++	EVFILT_SYSCOUNT                = 0xd
+ 	EVFILT_TIMER                   = -0x7
+ 	EVFILT_USER                    = -0xb
+ 	EVFILT_VNODE                   = -0x4
+ 	EVFILT_WRITE                   = -0x2
++	EVNAMEMAP_NAME_SIZE            = 0x40
+ 	EV_ADD                         = 0x1
+ 	EV_CLEAR                       = 0x20
+ 	EV_DELETE                      = 0x2
+@@ -574,6 +611,7 @@ const (
+ 	EV_RECEIPT                     = 0x40
+ 	EV_SYSFLAGS                    = 0xf000
+ 	EXTA                           = 0x4b00
++	EXTATTR_MAXNAMELEN             = 0xff
+ 	EXTATTR_NAMESPACE_EMPTY        = 0x0
+ 	EXTATTR_NAMESPACE_SYSTEM       = 0x2
+ 	EXTATTR_NAMESPACE_USER         = 0x1
+@@ -608,12 +646,14 @@ const (
+ 	F_UNLCKSYS                     = 0x4
+ 	F_WRLCK                        = 0x3
+ 	HUPCL                          = 0x4000
++	HW_MACHINE                     = 0x1
+ 	ICANON                         = 0x100
+ 	ICMP6_FILTER                   = 0x12
+ 	ICRNL                          = 0x100
+ 	IEXTEN                         = 0x400
+ 	IFAN_ARRIVAL                   = 0x0
+ 	IFAN_DEPARTURE                 = 0x1
++	IFCAP_WOL_MAGIC                = 0x2000
+ 	IFF_ALLMULTI                   = 0x200
+ 	IFF_ALTPHYS                    = 0x4000
+ 	IFF_BROADCAST                  = 0x2
+@@ -630,6 +670,7 @@ const (
+ 	IFF_MONITOR                    = 0x40000
+ 	IFF_MULTICAST                  = 0x8000
+ 	IFF_NOARP                      = 0x80
++	IFF_NOGROUP                    = 0x800000
+ 	IFF_OACTIVE                    = 0x400
+ 	IFF_POINTOPOINT                = 0x10
+ 	IFF_PPROMISC                   = 0x20000
+@@ -804,6 +845,7 @@ const (
+ 	IPV6_DSTOPTS                   = 0x32
+ 	IPV6_FLOWID                    = 0x43
+ 	IPV6_FLOWINFO_MASK             = 0xffffff0f
++	IPV6_FLOWLABEL_LEN             = 0x14
+ 	IPV6_FLOWLABEL_MASK            = 0xffff0f00
+ 	IPV6_FLOWTYPE                  = 0x44
+ 	IPV6_FRAGTTL                   = 0x78
+@@ -824,13 +866,13 @@ const (
+ 	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_ORIGDSTADDR               = 0x48
+ 	IPV6_PATHMTU                   = 0x2c
+ 	IPV6_PKTINFO                   = 0x2e
+ 	IPV6_PORTRANGE                 = 0xe
+@@ -842,6 +884,7 @@ const (
+ 	IPV6_RECVFLOWID                = 0x46
+ 	IPV6_RECVHOPLIMIT              = 0x25
+ 	IPV6_RECVHOPOPTS               = 0x27
++	IPV6_RECVORIGDSTADDR           = 0x48
+ 	IPV6_RECVPATHMTU               = 0x2b
+ 	IPV6_RECVPKTINFO               = 0x24
+ 	IPV6_RECVRSSBUCKETID           = 0x47
+@@ -902,10 +945,8 @@ const (
+ 	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
+@@ -915,6 +956,7 @@ const (
+ 	IP_OFFMASK                     = 0x1fff
+ 	IP_ONESBCAST                   = 0x17
+ 	IP_OPTIONS                     = 0x1
++	IP_ORIGDSTADDR                 = 0x1b
+ 	IP_PORTRANGE                   = 0x13
+ 	IP_PORTRANGE_DEFAULT           = 0x0
+ 	IP_PORTRANGE_HIGH              = 0x1
+@@ -923,6 +965,7 @@ const (
+ 	IP_RECVFLOWID                  = 0x5d
+ 	IP_RECVIF                      = 0x14
+ 	IP_RECVOPTS                    = 0x5
++	IP_RECVORIGDSTADDR             = 0x1b
+ 	IP_RECVRETOPTS                 = 0x6
+ 	IP_RECVRSSBUCKETID             = 0x5e
+ 	IP_RECVTOS                     = 0x44
+@@ -944,6 +987,10 @@ const (
+ 	IXANY                          = 0x800
+ 	IXOFF                          = 0x400
+ 	IXON                           = 0x200
++	KERN_HOSTNAME                  = 0xa
++	KERN_OSRELEASE                 = 0x2
++	KERN_OSTYPE                    = 0x1
++	KERN_VERSION                   = 0x4
+ 	LOCK_EX                        = 0x2
+ 	LOCK_NB                        = 0x4
+ 	LOCK_SH                        = 0x1
+@@ -969,6 +1016,7 @@ const (
+ 	MAP_EXCL                       = 0x4000
+ 	MAP_FILE                       = 0x0
+ 	MAP_FIXED                      = 0x10
++	MAP_GUARD                      = 0x2000
+ 	MAP_HASSEMAPHORE               = 0x200
+ 	MAP_NOCORE                     = 0x20000
+ 	MAP_NOSYNC                     = 0x800
+@@ -980,8 +1028,62 @@ const (
+ 	MAP_RESERVED0100               = 0x100
+ 	MAP_SHARED                     = 0x1
+ 	MAP_STACK                      = 0x400
++	MCAST_BLOCK_SOURCE             = 0x54
++	MCAST_EXCLUDE                  = 0x2
++	MCAST_INCLUDE                  = 0x1
++	MCAST_JOIN_GROUP               = 0x50
++	MCAST_JOIN_SOURCE_GROUP        = 0x52
++	MCAST_LEAVE_GROUP              = 0x51
++	MCAST_LEAVE_SOURCE_GROUP       = 0x53
++	MCAST_UNBLOCK_SOURCE           = 0x55
++	MCAST_UNDEFINED                = 0x0
+ 	MCL_CURRENT                    = 0x1
+ 	MCL_FUTURE                     = 0x2
++	MNT_ACLS                       = 0x8000000
++	MNT_ASYNC                      = 0x40
++	MNT_AUTOMOUNTED                = 0x200000000
++	MNT_BYFSID                     = 0x8000000
++	MNT_CMDFLAGS                   = 0xd0f0000
++	MNT_DEFEXPORTED                = 0x200
++	MNT_DELEXPORT                  = 0x20000
++	MNT_EXKERB                     = 0x800
++	MNT_EXPORTANON                 = 0x400
++	MNT_EXPORTED                   = 0x100
++	MNT_EXPUBLIC                   = 0x20000000
++	MNT_EXRDONLY                   = 0x80
++	MNT_FORCE                      = 0x80000
++	MNT_GJOURNAL                   = 0x2000000
++	MNT_IGNORE                     = 0x800000
++	MNT_LAZY                       = 0x3
++	MNT_LOCAL                      = 0x1000
++	MNT_MULTILABEL                 = 0x4000000
++	MNT_NFS4ACLS                   = 0x10
++	MNT_NOATIME                    = 0x10000000
++	MNT_NOCLUSTERR                 = 0x40000000
++	MNT_NOCLUSTERW                 = 0x80000000
++	MNT_NOEXEC                     = 0x4
++	MNT_NONBUSY                    = 0x4000000
++	MNT_NOSUID                     = 0x8
++	MNT_NOSYMFOLLOW                = 0x400000
++	MNT_NOWAIT                     = 0x2
++	MNT_QUOTA                      = 0x2000
++	MNT_RDONLY                     = 0x1
++	MNT_RELOAD                     = 0x40000
++	MNT_ROOTFS                     = 0x4000
++	MNT_SNAPSHOT                   = 0x1000000
++	MNT_SOFTDEP                    = 0x200000
++	MNT_SUIDDIR                    = 0x100000
++	MNT_SUJ                        = 0x100000000
++	MNT_SUSPEND                    = 0x4
++	MNT_SYNCHRONOUS                = 0x2
++	MNT_UNION                      = 0x20
++	MNT_UNTRUSTED                  = 0x800000000
++	MNT_UPDATE                     = 0x10000
++	MNT_UPDATEMASK                 = 0xad8d0807e
++	MNT_USER                       = 0x8000
++	MNT_VERIFIED                   = 0x400000000
++	MNT_VISFLAGMASK                = 0xffef0ffff
++	MNT_WAIT                       = 0x1
+ 	MSG_CMSG_CLOEXEC               = 0x40000
+ 	MSG_COMPAT                     = 0x8000
+ 	MSG_CTRUNC                     = 0x20
+@@ -1006,8 +1108,10 @@ const (
+ 	NET_RT_IFLIST                  = 0x3
+ 	NET_RT_IFLISTL                 = 0x5
+ 	NET_RT_IFMALIST                = 0x4
++	NFDBITS                        = 0x40
+ 	NOFLSH                         = 0x80000000
+ 	NOKERNINFO                     = 0x2000000
++	NOTE_ABSTIME                   = 0x10
+ 	NOTE_ATTRIB                    = 0x8
+ 	NOTE_CHILD                     = 0x4
+ 	NOTE_CLOSE                     = 0x100
+@@ -1162,7 +1266,6 @@ const (
+ 	RTV_WEIGHT                     = 0x100
+ 	RT_ALL_FIBS                    = -0x1
+ 	RT_BLACKHOLE                   = 0x40
+-	RT_CACHING_CONTEXT             = 0x1
+ 	RT_DEFAULT_FIB                 = 0x0
+ 	RT_HAS_GW                      = 0x80
+ 	RT_HAS_HEADER                  = 0x10
+@@ -1172,15 +1275,17 @@ const (
+ 	RT_LLE_CACHE                   = 0x100
+ 	RT_MAY_LOOP                    = 0x8
+ 	RT_MAY_LOOP_BIT                = 0x3
+-	RT_NORTREF                     = 0x2
+ 	RT_REJECT                      = 0x20
+ 	RUSAGE_CHILDREN                = -0x1
+ 	RUSAGE_SELF                    = 0x0
+ 	RUSAGE_THREAD                  = 0x1
+ 	SCM_BINTIME                    = 0x4
+ 	SCM_CREDS                      = 0x3
++	SCM_MONOTONIC                  = 0x6
++	SCM_REALTIME                   = 0x5
+ 	SCM_RIGHTS                     = 0x1
+ 	SCM_TIMESTAMP                  = 0x2
++	SCM_TIME_INFO                  = 0x7
+ 	SHUT_RD                        = 0x0
+ 	SHUT_RDWR                      = 0x2
+ 	SHUT_WR                        = 0x1
+@@ -1196,6 +1301,7 @@ const (
+ 	SIOCGETSGCNT                   = 0xc0207210
+ 	SIOCGETVIFCNT                  = 0xc028720f
+ 	SIOCGHIWAT                     = 0x40047301
++	SIOCGHWADDR                    = 0xc020693e
+ 	SIOCGI2C                       = 0xc020693d
+ 	SIOCGIFADDR                    = 0xc0206921
+ 	SIOCGIFBRDADDR                 = 0xc0206923
+@@ -1217,8 +1323,11 @@ const (
+ 	SIOCGIFPDSTADDR                = 0xc0206948
+ 	SIOCGIFPHYS                    = 0xc0206935
+ 	SIOCGIFPSRCADDR                = 0xc0206947
++	SIOCGIFRSSHASH                 = 0xc0186997
++	SIOCGIFRSSKEY                  = 0xc0946996
+ 	SIOCGIFSTATUS                  = 0xc331693b
+ 	SIOCGIFXMEDIA                  = 0xc030698b
++	SIOCGLANPCP                    = 0xc0206998
+ 	SIOCGLOWAT                     = 0x40047303
+ 	SIOCGPGRP                      = 0x40047309
+ 	SIOCGPRIVATE_0                 = 0xc0206950
+@@ -1249,6 +1358,7 @@ const (
+ 	SIOCSIFPHYS                    = 0x80206936
+ 	SIOCSIFRVNET                   = 0xc020695b
+ 	SIOCSIFVNET                    = 0xc020695a
++	SIOCSLANPCP                    = 0x80206999
+ 	SIOCSLOWAT                     = 0x80047302
+ 	SIOCSPGRP                      = 0x80047308
+ 	SIOCSTUNFIB                    = 0x8020695f
+@@ -1267,6 +1377,7 @@ const (
+ 	SO_BINTIME                     = 0x2000
+ 	SO_BROADCAST                   = 0x20
+ 	SO_DEBUG                       = 0x1
++	SO_DOMAIN                      = 0x1019
+ 	SO_DONTROUTE                   = 0x10
+ 	SO_ERROR                       = 0x1007
+ 	SO_KEEPALIVE                   = 0x8
+@@ -1275,6 +1386,7 @@ const (
+ 	SO_LISTENINCQLEN               = 0x1013
+ 	SO_LISTENQLEN                  = 0x1012
+ 	SO_LISTENQLIMIT                = 0x1011
++	SO_MAX_PACING_RATE             = 0x1018
+ 	SO_NOSIGPIPE                   = 0x800
+ 	SO_NO_DDP                      = 0x8000
+ 	SO_NO_OFFLOAD                  = 0x4000
+@@ -1287,15 +1399,52 @@ const (
+ 	SO_RCVTIMEO                    = 0x1006
+ 	SO_REUSEADDR                   = 0x4
+ 	SO_REUSEPORT                   = 0x200
++	SO_REUSEPORT_LB                = 0x10000
+ 	SO_SETFIB                      = 0x1014
+ 	SO_SNDBUF                      = 0x1001
+ 	SO_SNDLOWAT                    = 0x1003
+ 	SO_SNDTIMEO                    = 0x1005
+ 	SO_TIMESTAMP                   = 0x400
++	SO_TS_BINTIME                  = 0x1
++	SO_TS_CLOCK                    = 0x1017
++	SO_TS_CLOCK_MAX                = 0x3
++	SO_TS_DEFAULT                  = 0x0
++	SO_TS_MONOTONIC                = 0x3
++	SO_TS_REALTIME                 = 0x2
++	SO_TS_REALTIME_MICRO           = 0x0
+ 	SO_TYPE                        = 0x1008
+ 	SO_USELOOPBACK                 = 0x40
+ 	SO_USER_COOKIE                 = 0x1015
+ 	SO_VENDOR                      = 0x80000000
++	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
+ 	TAB0                           = 0x0
+ 	TAB3                           = 0x4
+ 	TABDLY                         = 0x4
+@@ -1306,10 +1455,45 @@ const (
+ 	TCOFLUSH                       = 0x2
+ 	TCOOFF                         = 0x1
+ 	TCOON                          = 0x2
++	TCP_BBR_ACK_COMP_ALG           = 0x448
++	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c
++	TCP_BBR_DRAIN_PG               = 0x42e
++	TCP_BBR_EXTRA_GAIN             = 0x449
++	TCP_BBR_IWINTSO                = 0x42b
++	TCP_BBR_LOWGAIN_FD             = 0x436
++	TCP_BBR_LOWGAIN_HALF           = 0x435
++	TCP_BBR_LOWGAIN_THRESH         = 0x434
++	TCP_BBR_MAX_RTO                = 0x439
++	TCP_BBR_MIN_RTO                = 0x438
++	TCP_BBR_ONE_RETRAN             = 0x431
++	TCP_BBR_PACE_CROSS             = 0x442
++	TCP_BBR_PACE_DEL_TAR           = 0x43f
++	TCP_BBR_PACE_PER_SEC           = 0x43e
++	TCP_BBR_PACE_SEG_MAX           = 0x440
++	TCP_BBR_PACE_SEG_MIN           = 0x441
++	TCP_BBR_PROBE_RTT_GAIN         = 0x44d
++	TCP_BBR_PROBE_RTT_INT          = 0x430
++	TCP_BBR_PROBE_RTT_LEN          = 0x44e
++	TCP_BBR_RACK_RTT_USE           = 0x44a
++	TCP_BBR_RECFORCE               = 0x42c
++	TCP_BBR_REC_OVER_HPTS          = 0x43a
++	TCP_BBR_RETRAN_WTSO            = 0x44b
++	TCP_BBR_RWND_IS_APP            = 0x42f
++	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d
++	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432
++	TCP_BBR_STARTUP_PG             = 0x42d
++	TCP_BBR_UNLIMITED              = 0x43b
++	TCP_BBR_USEDEL_RATE            = 0x437
++	TCP_BBR_USE_LOWGAIN            = 0x433
+ 	TCP_CA_NAME_MAX                = 0x10
+ 	TCP_CCALGOOPT                  = 0x41
+ 	TCP_CONGESTION                 = 0x40
++	TCP_DATA_AFTER_CLOSE           = 0x44c
++	TCP_DELACK                     = 0x48
+ 	TCP_FASTOPEN                   = 0x401
++	TCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10
++	TCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4
++	TCP_FASTOPEN_PSK_LEN           = 0x10
+ 	TCP_FUNCTION_BLK               = 0x2000
+ 	TCP_FUNCTION_NAME_LEN_MAX      = 0x20
+ 	TCP_INFO                       = 0x20
+@@ -1317,6 +1501,12 @@ const (
+ 	TCP_KEEPIDLE                   = 0x100
+ 	TCP_KEEPINIT                   = 0x80
+ 	TCP_KEEPINTVL                  = 0x200
++	TCP_LOG                        = 0x22
++	TCP_LOGBUF                     = 0x23
++	TCP_LOGDUMP                    = 0x25
++	TCP_LOGDUMPID                  = 0x26
++	TCP_LOGID                      = 0x24
++	TCP_LOG_ID_LEN                 = 0x40
+ 	TCP_MAXBURST                   = 0x4
+ 	TCP_MAXHLEN                    = 0x3c
+ 	TCP_MAXOLEN                    = 0x28
+@@ -1332,8 +1522,30 @@ const (
+ 	TCP_NOPUSH                     = 0x4
+ 	TCP_PCAP_IN                    = 0x1000
+ 	TCP_PCAP_OUT                   = 0x800
++	TCP_RACK_EARLY_RECOV           = 0x423
++	TCP_RACK_EARLY_SEG             = 0x424
++	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444
++	TCP_RACK_MIN_PACE              = 0x445
++	TCP_RACK_MIN_PACE_SEG          = 0x446
++	TCP_RACK_MIN_TO                = 0x422
++	TCP_RACK_PACE_ALWAYS           = 0x41f
++	TCP_RACK_PACE_MAX_SEG          = 0x41e
++	TCP_RACK_PACE_REDUCE           = 0x41d
++	TCP_RACK_PKT_DELAY             = 0x428
++	TCP_RACK_PROP                  = 0x41b
++	TCP_RACK_PROP_RATE             = 0x420
++	TCP_RACK_PRR_SENDALOT          = 0x421
++	TCP_RACK_REORD_FADE            = 0x426
++	TCP_RACK_REORD_THRESH          = 0x425
++	TCP_RACK_SESS_CWV              = 0x42a
++	TCP_RACK_TLP_INC_VAR           = 0x429
++	TCP_RACK_TLP_REDUCE            = 0x41c
++	TCP_RACK_TLP_THRESH            = 0x427
++	TCP_RACK_TLP_USE               = 0x447
+ 	TCP_VENDOR                     = 0x80000000
+ 	TCSAFLUSH                      = 0x2
++	TIMER_ABSTIME                  = 0x1
++	TIMER_RELTIME                  = 0x0
+ 	TIOCCBRK                       = 0x2000747a
+ 	TIOCCDTR                       = 0x20007478
+ 	TIOCCONS                       = 0x80047462
+@@ -1397,6 +1609,8 @@ const (
+ 	TIOCTIMESTAMP                  = 0x40107459
+ 	TIOCUCNTL                      = 0x80047466
+ 	TOSTOP                         = 0x400000
++	UTIME_NOW                      = -0x1
++	UTIME_OMIT                     = -0x2
+ 	VDISCARD                       = 0xf
+ 	VDSUSP                         = 0xb
+ 	VEOF                           = 0x0
+@@ -1408,6 +1622,7 @@ const (
+ 	VKILL                          = 0x5
+ 	VLNEXT                         = 0xe
+ 	VMIN                           = 0x10
++	VM_BCACHE_SIZE_MAX             = 0x19000000
+ 	VQUIT                          = 0x9
+ 	VREPRINT                       = 0x6
+ 	VSTART                         = 0xc
+@@ -1570,138 +1785,146 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "ECANCELED", "operation canceled"},
++	{86, "EILSEQ", "illegal byte sequence"},
++	{87, "ENOATTR", "attribute not found"},
++	{88, "EDOOFUS", "programming error"},
++	{89, "EBADMSG", "bad message"},
++	{90, "EMULTIHOP", "multihop attempted"},
++	{91, "ENOLINK", "link has been severed"},
++	{92, "EPROTO", "protocol error"},
++	{93, "ENOTCAPABLE", "capabilities insufficient"},
++	{94, "ECAPMODE", "not permitted in capability mode"},
++	{95, "ENOTRECOVERABLE", "state not recoverable"},
++	{96, "EOWNERDEAD", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "unknown signal"},
++	{33, "SIGLIBRT", "unknown signal"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go
+new file mode 100644
+index 00000000..21973940
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go
+@@ -0,0 +1,2469 @@
++// Code generated by mkmerge.go; DO NOT EDIT.
++
++// +build linux
++
++package unix
++
++import "syscall"
++
++const (
++	AAFS_MAGIC                                  = 0x5a3c69f0
++	ADFS_SUPER_MAGIC                            = 0xadf5
++	AFFS_SUPER_MAGIC                            = 0xadff
++	AFS_FS_MAGIC                                = 0x6b414653
++	AFS_SUPER_MAGIC                             = 0x5346414f
++	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                                      = 0x2d
++	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_QIPCRTR                                  = 0x2a
++	AF_RDS                                      = 0x15
++	AF_ROSE                                     = 0xb
++	AF_ROUTE                                    = 0x10
++	AF_RXRPC                                    = 0x21
++	AF_SECURITY                                 = 0xe
++	AF_SMC                                      = 0x2b
++	AF_SNA                                      = 0x16
++	AF_TIPC                                     = 0x1e
++	AF_UNIX                                     = 0x1
++	AF_UNSPEC                                   = 0x0
++	AF_VSOCK                                    = 0x28
++	AF_WANPIPE                                  = 0x19
++	AF_X25                                      = 0x9
++	AF_XDP                                      = 0x2c
++	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
++	ANON_INODE_FS_MAGIC                         = 0x9041934
++	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_RAWIP                                = 0x207
++	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_VSOCKMON                             = 0x33a
++	ARPHRD_X25                                  = 0x10f
++	AUTOFS_SUPER_MAGIC                          = 0x187
++	B0                                          = 0x0
++	B110                                        = 0x3
++	B1200                                       = 0x9
++	B134                                        = 0x4
++	B150                                        = 0x5
++	B1800                                       = 0xa
++	B19200                                      = 0xe
++	B200                                        = 0x6
++	B2400                                       = 0xb
++	B300                                        = 0x7
++	B38400                                      = 0xf
++	B4800                                       = 0xc
++	B50                                         = 0x1
++	B600                                        = 0x8
++	B75                                         = 0x2
++	B9600                                       = 0xd
++	BALLOON_KVM_MAGIC                           = 0x13661366
++	BDEVFS_MAGIC                                = 0x62646576
++	BINDERFS_SUPER_MAGIC                        = 0x6c6f6f70
++	BINFMTFS_MAGIC                              = 0x42494e4d
++	BPF_A                                       = 0x10
++	BPF_ABS                                     = 0x20
++	BPF_ADD                                     = 0x0
++	BPF_ADJ_ROOM_ENCAP_L2_MASK                  = 0xff
++	BPF_ADJ_ROOM_ENCAP_L2_SHIFT                 = 0x38
++	BPF_ALU                                     = 0x4
++	BPF_ALU64                                   = 0x7
++	BPF_AND                                     = 0x50
++	BPF_ANY                                     = 0x0
++	BPF_ARSH                                    = 0xc0
++	BPF_B                                       = 0x10
++	BPF_BUILD_ID_SIZE                           = 0x14
++	BPF_CALL                                    = 0x80
++	BPF_DEVCG_ACC_MKNOD                         = 0x1
++	BPF_DEVCG_ACC_READ                          = 0x2
++	BPF_DEVCG_ACC_WRITE                         = 0x4
++	BPF_DEVCG_DEV_BLOCK                         = 0x1
++	BPF_DEVCG_DEV_CHAR                          = 0x2
++	BPF_DIV                                     = 0x30
++	BPF_DW                                      = 0x18
++	BPF_END                                     = 0xd0
++	BPF_EXIST                                   = 0x2
++	BPF_EXIT                                    = 0x90
++	BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG         = 0x1
++	BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP          = 0x4
++	BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL     = 0x2
++	BPF_FROM_BE                                 = 0x8
++	BPF_FROM_LE                                 = 0x0
++	BPF_FS_MAGIC                                = 0xcafe4a11
++	BPF_F_ADJ_ROOM_ENCAP_L3_IPV4                = 0x2
++	BPF_F_ADJ_ROOM_ENCAP_L3_IPV6                = 0x4
++	BPF_F_ADJ_ROOM_ENCAP_L4_GRE                 = 0x8
++	BPF_F_ADJ_ROOM_ENCAP_L4_UDP                 = 0x10
++	BPF_F_ADJ_ROOM_FIXED_GSO                    = 0x1
++	BPF_F_ALLOW_MULTI                           = 0x2
++	BPF_F_ALLOW_OVERRIDE                        = 0x1
++	BPF_F_ANY_ALIGNMENT                         = 0x2
++	BPF_F_CLONE                                 = 0x200
++	BPF_F_CTXLEN_MASK                           = 0xfffff00000000
++	BPF_F_CURRENT_CPU                           = 0xffffffff
++	BPF_F_CURRENT_NETNS                         = -0x1
++	BPF_F_DONT_FRAGMENT                         = 0x4
++	BPF_F_FAST_STACK_CMP                        = 0x200
++	BPF_F_HDR_FIELD_MASK                        = 0xf
++	BPF_F_INDEX_MASK                            = 0xffffffff
++	BPF_F_INGRESS                               = 0x1
++	BPF_F_INVALIDATE_HASH                       = 0x2
++	BPF_F_LOCK                                  = 0x4
++	BPF_F_MARK_ENFORCE                          = 0x40
++	BPF_F_MARK_MANGLED_0                        = 0x20
++	BPF_F_MMAPABLE                              = 0x400
++	BPF_F_NO_COMMON_LRU                         = 0x2
++	BPF_F_NO_PREALLOC                           = 0x1
++	BPF_F_NUMA_NODE                             = 0x4
++	BPF_F_PSEUDO_HDR                            = 0x10
++	BPF_F_QUERY_EFFECTIVE                       = 0x1
++	BPF_F_RDONLY                                = 0x8
++	BPF_F_RDONLY_PROG                           = 0x80
++	BPF_F_RECOMPUTE_CSUM                        = 0x1
++	BPF_F_REPLACE                               = 0x4
++	BPF_F_REUSE_STACKID                         = 0x400
++	BPF_F_SEQ_NUMBER                            = 0x8
++	BPF_F_SKIP_FIELD_MASK                       = 0xff
++	BPF_F_STACK_BUILD_ID                        = 0x20
++	BPF_F_STRICT_ALIGNMENT                      = 0x1
++	BPF_F_SYSCTL_BASE_NAME                      = 0x1
++	BPF_F_TEST_RND_HI32                         = 0x4
++	BPF_F_TEST_STATE_FREQ                       = 0x8
++	BPF_F_TUNINFO_IPV6                          = 0x1
++	BPF_F_USER_BUILD_ID                         = 0x800
++	BPF_F_USER_STACK                            = 0x100
++	BPF_F_WRONLY                                = 0x10
++	BPF_F_WRONLY_PROG                           = 0x100
++	BPF_F_ZERO_CSUM_TX                          = 0x2
++	BPF_F_ZERO_SEED                             = 0x40
++	BPF_H                                       = 0x8
++	BPF_IMM                                     = 0x0
++	BPF_IND                                     = 0x40
++	BPF_JA                                      = 0x0
++	BPF_JEQ                                     = 0x10
++	BPF_JGE                                     = 0x30
++	BPF_JGT                                     = 0x20
++	BPF_JLE                                     = 0xb0
++	BPF_JLT                                     = 0xa0
++	BPF_JMP                                     = 0x5
++	BPF_JMP32                                   = 0x6
++	BPF_JNE                                     = 0x50
++	BPF_JSET                                    = 0x40
++	BPF_JSGE                                    = 0x70
++	BPF_JSGT                                    = 0x60
++	BPF_JSLE                                    = 0xd0
++	BPF_JSLT                                    = 0xc0
++	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_MOV                                     = 0xb0
++	BPF_MSH                                     = 0xa0
++	BPF_MUL                                     = 0x20
++	BPF_NEG                                     = 0x80
++	BPF_NET_OFF                                 = -0x100000
++	BPF_NOEXIST                                 = 0x1
++	BPF_OBJ_NAME_LEN                            = 0x10
++	BPF_OR                                      = 0x40
++	BPF_PSEUDO_CALL                             = 0x1
++	BPF_PSEUDO_MAP_FD                           = 0x1
++	BPF_PSEUDO_MAP_VALUE                        = 0x2
++	BPF_RET                                     = 0x6
++	BPF_RSH                                     = 0x70
++	BPF_SK_STORAGE_GET_F_CREATE                 = 0x1
++	BPF_SOCK_OPS_ALL_CB_FLAGS                   = 0xf
++	BPF_SOCK_OPS_RETRANS_CB_FLAG                = 0x2
++	BPF_SOCK_OPS_RTO_CB_FLAG                    = 0x1
++	BPF_SOCK_OPS_RTT_CB_FLAG                    = 0x8
++	BPF_SOCK_OPS_STATE_CB_FLAG                  = 0x4
++	BPF_ST                                      = 0x2
++	BPF_STX                                     = 0x3
++	BPF_SUB                                     = 0x10
++	BPF_TAG_SIZE                                = 0x8
++	BPF_TAX                                     = 0x0
++	BPF_TO_BE                                   = 0x8
++	BPF_TO_LE                                   = 0x0
++	BPF_TXA                                     = 0x80
++	BPF_W                                       = 0x0
++	BPF_X                                       = 0x8
++	BPF_XADD                                    = 0xc0
++	BPF_XOR                                     = 0xa0
++	BRKINT                                      = 0x2
++	BS0                                         = 0x0
++	BTRFS_SUPER_MAGIC                           = 0x9123683e
++	BTRFS_TEST_MAGIC                            = 0x73727279
++	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_J1939                                   = 0x7
++	CAN_MAX_DLC                                 = 0x8
++	CAN_MAX_DLEN                                = 0x8
++	CAN_MCNET                                   = 0x5
++	CAN_MTU                                     = 0x10
++	CAN_NPROTO                                  = 0x8
++	CAN_RAW                                     = 0x1
++	CAN_RAW_FILTER_MAX                          = 0x200
++	CAN_RTR_FLAG                                = 0x40000000
++	CAN_SFF_ID_BITS                             = 0xb
++	CAN_SFF_MASK                                = 0x7ff
++	CAN_TP16                                    = 0x3
++	CAN_TP20                                    = 0x4
++	CAP_AUDIT_CONTROL                           = 0x1e
++	CAP_AUDIT_READ                              = 0x25
++	CAP_AUDIT_WRITE                             = 0x1d
++	CAP_BLOCK_SUSPEND                           = 0x24
++	CAP_CHOWN                                   = 0x0
++	CAP_DAC_OVERRIDE                            = 0x1
++	CAP_DAC_READ_SEARCH                         = 0x2
++	CAP_FOWNER                                  = 0x3
++	CAP_FSETID                                  = 0x4
++	CAP_IPC_LOCK                                = 0xe
++	CAP_IPC_OWNER                               = 0xf
++	CAP_KILL                                    = 0x5
++	CAP_LAST_CAP                                = 0x25
++	CAP_LEASE                                   = 0x1c
++	CAP_LINUX_IMMUTABLE                         = 0x9
++	CAP_MAC_ADMIN                               = 0x21
++	CAP_MAC_OVERRIDE                            = 0x20
++	CAP_MKNOD                                   = 0x1b
++	CAP_NET_ADMIN                               = 0xc
++	CAP_NET_BIND_SERVICE                        = 0xa
++	CAP_NET_BROADCAST                           = 0xb
++	CAP_NET_RAW                                 = 0xd
++	CAP_SETFCAP                                 = 0x1f
++	CAP_SETGID                                  = 0x6
++	CAP_SETPCAP                                 = 0x8
++	CAP_SETUID                                  = 0x7
++	CAP_SYSLOG                                  = 0x22
++	CAP_SYS_ADMIN                               = 0x15
++	CAP_SYS_BOOT                                = 0x16
++	CAP_SYS_CHROOT                              = 0x12
++	CAP_SYS_MODULE                              = 0x10
++	CAP_SYS_NICE                                = 0x17
++	CAP_SYS_PACCT                               = 0x14
++	CAP_SYS_PTRACE                              = 0x13
++	CAP_SYS_RAWIO                               = 0x11
++	CAP_SYS_RESOURCE                            = 0x18
++	CAP_SYS_TIME                                = 0x19
++	CAP_SYS_TTY_CONFIG                          = 0x1a
++	CAP_WAKE_ALARM                              = 0x23
++	CFLUSH                                      = 0xf
++	CGROUP2_SUPER_MAGIC                         = 0x63677270
++	CGROUP_SUPER_MAGIC                          = 0x27e0eb
++	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_ARGS_SIZE_VER0                        = 0x40
++	CLONE_ARGS_SIZE_VER1                        = 0x50
++	CLONE_CHILD_CLEARTID                        = 0x200000
++	CLONE_CHILD_SETTID                          = 0x1000000
++	CLONE_CLEAR_SIGHAND                         = 0x100000000
++	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_NEWTIME                               = 0x80
++	CLONE_NEWUSER                               = 0x10000000
++	CLONE_NEWUTS                                = 0x4000000
++	CLONE_PARENT                                = 0x8000
++	CLONE_PARENT_SETTID                         = 0x100000
++	CLONE_PIDFD                                 = 0x1000
++	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
++	CODA_SUPER_MAGIC                            = 0x73757245
++	CR0                                         = 0x0
++	CRAMFS_MAGIC                                = 0x28cd3d45
++	CRTSCTS                                     = 0x80000000
++	CRYPTO_MAX_NAME                             = 0x40
++	CRYPTO_MSG_MAX                              = 0x15
++	CRYPTO_NR_MSGTYPES                          = 0x6
++	CRYPTO_REPORT_MAXSIZE                       = 0x160
++	CS5                                         = 0x0
++	CSIGNAL                                     = 0xff
++	CSTART                                      = 0x11
++	CSTATUS                                     = 0x0
++	CSTOP                                       = 0x13
++	CSUSP                                       = 0x1a
++	DAXFS_MAGIC                                 = 0x64646178
++	DEBUGFS_MAGIC                               = 0x64626720
++	DEVLINK_CMD_ESWITCH_MODE_GET                = 0x1d
++	DEVLINK_CMD_ESWITCH_MODE_SET                = 0x1e
++	DEVLINK_GENL_MCGRP_CONFIG_NAME              = "config"
++	DEVLINK_GENL_NAME                           = "devlink"
++	DEVLINK_GENL_VERSION                        = 0x1
++	DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX           = 0x14
++	DEVPTS_SUPER_MAGIC                          = 0x1cd1
++	DMA_BUF_MAGIC                               = 0x444d4142
++	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
++	ECRYPTFS_SUPER_MAGIC                        = 0xf15f
++	EFD_SEMAPHORE                               = 0x1
++	EFIVARFS_MAGIC                              = 0xde5e81e4
++	EFS_SUPER_MAGIC                             = 0x414a53
++	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_CTL_ADD                               = 0x1
++	EPOLL_CTL_DEL                               = 0x2
++	EPOLL_CTL_MOD                               = 0x3
++	EROFS_SUPER_MAGIC_V1                        = 0xe0f5e1e2
++	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_DSA_8021Q                             = 0xdadb
++	ETH_P_ECONET                                = 0x18
++	ETH_P_EDSA                                  = 0xdada
++	ETH_P_ERSPAN                                = 0x88be
++	ETH_P_ERSPAN2                               = 0x22eb
++	ETH_P_FCOE                                  = 0x8906
++	ETH_P_FIP                                   = 0x8914
++	ETH_P_HDLC                                  = 0x19
++	ETH_P_HSR                                   = 0x892f
++	ETH_P_IBOE                                  = 0x8915
++	ETH_P_IEEE802154                            = 0xf6
++	ETH_P_IEEEPUP                               = 0xa00
++	ETH_P_IEEEPUPAT                             = 0xa01
++	ETH_P_IFE                                   = 0xed3e
++	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_LLDP                                  = 0x88cc
++	ETH_P_LOCALTALK                             = 0x9
++	ETH_P_LOOP                                  = 0x60
++	ETH_P_LOOPBACK                              = 0x9000
++	ETH_P_MACSEC                                = 0x88e5
++	ETH_P_MAP                                   = 0xf9
++	ETH_P_MOBITEX                               = 0x15
++	ETH_P_MPLS_MC                               = 0x8848
++	ETH_P_MPLS_UC                               = 0x8847
++	ETH_P_MVRP                                  = 0x88f5
++	ETH_P_NCSI                                  = 0x88f8
++	ETH_P_NSH                                   = 0x894f
++	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_PREAUTH                               = 0x88c7
++	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
++	EXABYTE_ENABLE_NEST                         = 0xf0
++	EXT2_SUPER_MAGIC                            = 0xef53
++	EXT3_SUPER_MAGIC                            = 0xef53
++	EXT4_SUPER_MAGIC                            = 0xef53
++	EXTA                                        = 0xe
++	EXTB                                        = 0xf
++	F2FS_SUPER_MAGIC                            = 0xf2f52010
++	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_UNSHARE_RANGE                     = 0x40
++	FALLOC_FL_ZERO_RANGE                        = 0x10
++	FANOTIFY_METADATA_VERSION                   = 0x3
++	FAN_ACCESS                                  = 0x1
++	FAN_ACCESS_PERM                             = 0x20000
++	FAN_ALLOW                                   = 0x1
++	FAN_ALL_CLASS_BITS                          = 0xc
++	FAN_ALL_EVENTS                              = 0x3b
++	FAN_ALL_INIT_FLAGS                          = 0x3f
++	FAN_ALL_MARK_FLAGS                          = 0xff
++	FAN_ALL_OUTGOING_EVENTS                     = 0x3403b
++	FAN_ALL_PERM_EVENTS                         = 0x30000
++	FAN_ATTRIB                                  = 0x4
++	FAN_AUDIT                                   = 0x10
++	FAN_CLASS_CONTENT                           = 0x4
++	FAN_CLASS_NOTIF                             = 0x0
++	FAN_CLASS_PRE_CONTENT                       = 0x8
++	FAN_CLOEXEC                                 = 0x1
++	FAN_CLOSE                                   = 0x18
++	FAN_CLOSE_NOWRITE                           = 0x10
++	FAN_CLOSE_WRITE                             = 0x8
++	FAN_CREATE                                  = 0x100
++	FAN_DELETE                                  = 0x200
++	FAN_DELETE_SELF                             = 0x400
++	FAN_DENY                                    = 0x2
++	FAN_ENABLE_AUDIT                            = 0x40
++	FAN_EVENT_INFO_TYPE_FID                     = 0x1
++	FAN_EVENT_METADATA_LEN                      = 0x18
++	FAN_EVENT_ON_CHILD                          = 0x8000000
++	FAN_MARK_ADD                                = 0x1
++	FAN_MARK_DONT_FOLLOW                        = 0x4
++	FAN_MARK_FILESYSTEM                         = 0x100
++	FAN_MARK_FLUSH                              = 0x80
++	FAN_MARK_IGNORED_MASK                       = 0x20
++	FAN_MARK_IGNORED_SURV_MODIFY                = 0x40
++	FAN_MARK_INODE                              = 0x0
++	FAN_MARK_MOUNT                              = 0x10
++	FAN_MARK_ONLYDIR                            = 0x8
++	FAN_MARK_REMOVE                             = 0x2
++	FAN_MODIFY                                  = 0x2
++	FAN_MOVE                                    = 0xc0
++	FAN_MOVED_FROM                              = 0x40
++	FAN_MOVED_TO                                = 0x80
++	FAN_MOVE_SELF                               = 0x800
++	FAN_NOFD                                    = -0x1
++	FAN_NONBLOCK                                = 0x2
++	FAN_ONDIR                                   = 0x40000000
++	FAN_OPEN                                    = 0x20
++	FAN_OPEN_EXEC                               = 0x1000
++	FAN_OPEN_EXEC_PERM                          = 0x40000
++	FAN_OPEN_PERM                               = 0x10000
++	FAN_Q_OVERFLOW                              = 0x4000
++	FAN_REPORT_FID                              = 0x200
++	FAN_REPORT_TID                              = 0x100
++	FAN_UNLIMITED_MARKS                         = 0x20
++	FAN_UNLIMITED_QUEUE                         = 0x10
++	FD_CLOEXEC                                  = 0x1
++	FD_SETSIZE                                  = 0x400
++	FF0                                         = 0x0
++	FSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8
++	FSCRYPT_KEY_DESC_PREFIX                     = "fscrypt:"
++	FSCRYPT_KEY_DESC_PREFIX_SIZE                = 0x8
++	FSCRYPT_KEY_IDENTIFIER_SIZE                 = 0x10
++	FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY  = 0x1
++	FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2
++	FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR            = 0x1
++	FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER            = 0x2
++	FSCRYPT_KEY_STATUS_ABSENT                   = 0x1
++	FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF       = 0x1
++	FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED     = 0x3
++	FSCRYPT_KEY_STATUS_PRESENT                  = 0x2
++	FSCRYPT_MAX_KEY_SIZE                        = 0x40
++	FSCRYPT_MODE_ADIANTUM                       = 0x9
++	FSCRYPT_MODE_AES_128_CBC                    = 0x5
++	FSCRYPT_MODE_AES_128_CTS                    = 0x6
++	FSCRYPT_MODE_AES_256_CTS                    = 0x4
++	FSCRYPT_MODE_AES_256_XTS                    = 0x1
++	FSCRYPT_POLICY_FLAGS_PAD_16                 = 0x2
++	FSCRYPT_POLICY_FLAGS_PAD_32                 = 0x3
++	FSCRYPT_POLICY_FLAGS_PAD_4                  = 0x0
++	FSCRYPT_POLICY_FLAGS_PAD_8                  = 0x1
++	FSCRYPT_POLICY_FLAGS_PAD_MASK               = 0x3
++	FSCRYPT_POLICY_FLAGS_VALID                  = 0xf
++	FSCRYPT_POLICY_FLAG_DIRECT_KEY              = 0x4
++	FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64          = 0x8
++	FSCRYPT_POLICY_V1                           = 0x0
++	FSCRYPT_POLICY_V2                           = 0x2
++	FS_ENCRYPTION_MODE_ADIANTUM                 = 0x9
++	FS_ENCRYPTION_MODE_AES_128_CBC              = 0x5
++	FS_ENCRYPTION_MODE_AES_128_CTS              = 0x6
++	FS_ENCRYPTION_MODE_AES_256_CBC              = 0x3
++	FS_ENCRYPTION_MODE_AES_256_CTS              = 0x4
++	FS_ENCRYPTION_MODE_AES_256_GCM              = 0x2
++	FS_ENCRYPTION_MODE_AES_256_XTS              = 0x1
++	FS_ENCRYPTION_MODE_INVALID                  = 0x0
++	FS_ENCRYPTION_MODE_SPECK128_256_CTS         = 0x8
++	FS_ENCRYPTION_MODE_SPECK128_256_XTS         = 0x7
++	FS_IOC_ADD_ENCRYPTION_KEY                   = 0xc0506617
++	FS_IOC_GET_ENCRYPTION_KEY_STATUS            = 0xc080661a
++	FS_IOC_GET_ENCRYPTION_POLICY_EX             = 0xc0096616
++	FS_IOC_MEASURE_VERITY                       = 0xc0046686
++	FS_IOC_REMOVE_ENCRYPTION_KEY                = 0xc0406618
++	FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS      = 0xc0406619
++	FS_KEY_DESCRIPTOR_SIZE                      = 0x8
++	FS_KEY_DESC_PREFIX                          = "fscrypt:"
++	FS_KEY_DESC_PREFIX_SIZE                     = 0x8
++	FS_MAX_KEY_SIZE                             = 0x40
++	FS_POLICY_FLAGS_PAD_16                      = 0x2
++	FS_POLICY_FLAGS_PAD_32                      = 0x3
++	FS_POLICY_FLAGS_PAD_4                       = 0x0
++	FS_POLICY_FLAGS_PAD_8                       = 0x1
++	FS_POLICY_FLAGS_PAD_MASK                    = 0x3
++	FS_POLICY_FLAGS_VALID                       = 0xf
++	FS_VERITY_FL                                = 0x100000
++	FS_VERITY_HASH_ALG_SHA256                   = 0x1
++	FS_VERITY_HASH_ALG_SHA512                   = 0x2
++	FUTEXFS_SUPER_MAGIC                         = 0xbad1dea
++	F_ADD_SEALS                                 = 0x409
++	F_DUPFD                                     = 0x0
++	F_DUPFD_CLOEXEC                             = 0x406
++	F_EXLCK                                     = 0x4
++	F_GETFD                                     = 0x1
++	F_GETFL                                     = 0x3
++	F_GETLEASE                                  = 0x401
++	F_GETOWN_EX                                 = 0x10
++	F_GETPIPE_SZ                                = 0x408
++	F_GETSIG                                    = 0xb
++	F_GET_FILE_RW_HINT                          = 0x40d
++	F_GET_RW_HINT                               = 0x40b
++	F_GET_SEALS                                 = 0x40a
++	F_LOCK                                      = 0x1
++	F_NOTIFY                                    = 0x402
++	F_OFD_GETLK                                 = 0x24
++	F_OFD_SETLK                                 = 0x25
++	F_OFD_SETLKW                                = 0x26
++	F_OK                                        = 0x0
++	F_SEAL_FUTURE_WRITE                         = 0x10
++	F_SEAL_GROW                                 = 0x4
++	F_SEAL_SEAL                                 = 0x1
++	F_SEAL_SHRINK                               = 0x2
++	F_SEAL_WRITE                                = 0x8
++	F_SETFD                                     = 0x2
++	F_SETFL                                     = 0x4
++	F_SETLEASE                                  = 0x400
++	F_SETOWN_EX                                 = 0xf
++	F_SETPIPE_SZ                                = 0x407
++	F_SETSIG                                    = 0xa
++	F_SET_FILE_RW_HINT                          = 0x40e
++	F_SET_RW_HINT                               = 0x40c
++	F_SHLCK                                     = 0x8
++	F_TEST                                      = 0x3
++	F_TLOCK                                     = 0x2
++	F_ULOCK                                     = 0x0
++	GENL_ADMIN_PERM                             = 0x1
++	GENL_CMD_CAP_DO                             = 0x2
++	GENL_CMD_CAP_DUMP                           = 0x4
++	GENL_CMD_CAP_HASPOL                         = 0x8
++	GENL_HDRLEN                                 = 0x4
++	GENL_ID_CTRL                                = 0x10
++	GENL_ID_PMCRAID                             = 0x12
++	GENL_ID_VFS_DQUOT                           = 0x11
++	GENL_MAX_ID                                 = 0x3ff
++	GENL_MIN_ID                                 = 0x10
++	GENL_NAMSIZ                                 = 0x10
++	GENL_START_ALLOC                            = 0x13
++	GENL_UNS_ADMIN_PERM                         = 0x10
++	GRND_INSECURE                               = 0x4
++	GRND_NONBLOCK                               = 0x1
++	GRND_RANDOM                                 = 0x2
++	HDIO_DRIVE_CMD                              = 0x31f
++	HDIO_DRIVE_CMD_AEB                          = 0x31e
++	HDIO_DRIVE_CMD_HDR_SIZE                     = 0x4
++	HDIO_DRIVE_HOB_HDR_SIZE                     = 0x8
++	HDIO_DRIVE_RESET                            = 0x31c
++	HDIO_DRIVE_TASK                             = 0x31e
++	HDIO_DRIVE_TASKFILE                         = 0x31d
++	HDIO_DRIVE_TASK_HDR_SIZE                    = 0x8
++	HDIO_GETGEO                                 = 0x301
++	HDIO_GET_32BIT                              = 0x309
++	HDIO_GET_ACOUSTIC                           = 0x30f
++	HDIO_GET_ADDRESS                            = 0x310
++	HDIO_GET_BUSSTATE                           = 0x31a
++	HDIO_GET_DMA                                = 0x30b
++	HDIO_GET_IDENTITY                           = 0x30d
++	HDIO_GET_KEEPSETTINGS                       = 0x308
++	HDIO_GET_MULTCOUNT                          = 0x304
++	HDIO_GET_NICE                               = 0x30c
++	HDIO_GET_NOWERR                             = 0x30a
++	HDIO_GET_QDMA                               = 0x305
++	HDIO_GET_UNMASKINTR                         = 0x302
++	HDIO_GET_WCACHE                             = 0x30e
++	HDIO_OBSOLETE_IDENTITY                      = 0x307
++	HDIO_SCAN_HWIF                              = 0x328
++	HDIO_SET_32BIT                              = 0x324
++	HDIO_SET_ACOUSTIC                           = 0x32c
++	HDIO_SET_ADDRESS                            = 0x32f
++	HDIO_SET_BUSSTATE                           = 0x32d
++	HDIO_SET_DMA                                = 0x326
++	HDIO_SET_KEEPSETTINGS                       = 0x323
++	HDIO_SET_MULTCOUNT                          = 0x321
++	HDIO_SET_NICE                               = 0x329
++	HDIO_SET_NOWERR                             = 0x325
++	HDIO_SET_PIO_MODE                           = 0x327
++	HDIO_SET_QDMA                               = 0x32e
++	HDIO_SET_UNMASKINTR                         = 0x322
++	HDIO_SET_WCACHE                             = 0x32b
++	HDIO_SET_XFER                               = 0x306
++	HDIO_TRISTATE_HWIF                          = 0x31b
++	HDIO_UNREGISTER_HWIF                        = 0x32a
++	HOSTFS_SUPER_MAGIC                          = 0xc0ffee
++	HPFS_SUPER_MAGIC                            = 0xf995e849
++	HUGETLBFS_MAGIC                             = 0x958458f6
++	IBSHIFT                                     = 0x10
++	ICMPV6_FILTER                               = 0x1
++	ICRNL                                       = 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                                     = 0xa
++	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_NAPI                                    = 0x10
++	IFF_NAPI_FRAGS                              = 0x20
++	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_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_MASK_CREATE                              = 0x10000000
++	IN_MODIFY                                   = 0x2
++	IN_MOVE                                     = 0xc0
++	IN_MOVED_FROM                               = 0x40
++	IN_MOVED_TO                                 = 0x80
++	IN_MOVE_SELF                                = 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_L2TP                                = 0x73
++	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_ADDR_PREFERENCES                       = 0x48
++	IPV6_ADD_MEMBERSHIP                         = 0x14
++	IPV6_AUTHHDR                                = 0xa
++	IPV6_AUTOFLOWLABEL                          = 0x46
++	IPV6_CHECKSUM                               = 0x7
++	IPV6_DONTFRAG                               = 0x3e
++	IPV6_DROP_MEMBERSHIP                        = 0x15
++	IPV6_DSTOPTS                                = 0x3b
++	IPV6_FREEBIND                               = 0x4e
++	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_MINHOPCOUNT                            = 0x49
++	IPV6_MTU                                    = 0x18
++	IPV6_MTU_DISCOVER                           = 0x17
++	IPV6_MULTICAST_ALL                          = 0x1d
++	IPV6_MULTICAST_HOPS                         = 0x12
++	IPV6_MULTICAST_IF                           = 0x11
++	IPV6_MULTICAST_LOOP                         = 0x13
++	IPV6_NEXTHOP                                = 0x9
++	IPV6_ORIGDSTADDR                            = 0x4a
++	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_RECVFRAGSIZE                           = 0x4d
++	IPV6_RECVHOPLIMIT                           = 0x33
++	IPV6_RECVHOPOPTS                            = 0x35
++	IPV6_RECVORIGDSTADDR                        = 0x4a
++	IPV6_RECVPATHMTU                            = 0x3c
++	IPV6_RECVPKTINFO                            = 0x31
++	IPV6_RECVRTHDR                              = 0x38
++	IPV6_RECVTCLASS                             = 0x42
++	IPV6_ROUTER_ALERT                           = 0x16
++	IPV6_ROUTER_ALERT_ISOLATE                   = 0x1e
++	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_TRANSPARENT                            = 0x4b
++	IPV6_UNICAST_HOPS                           = 0x10
++	IPV6_UNICAST_IF                             = 0x4c
++	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_RECVFRAGSIZE                             = 0x19
++	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
++	ISOFS_SUPER_MAGIC                           = 0x9660
++	ISTRIP                                      = 0x20
++	IUTF8                                       = 0x4000
++	IXANY                                       = 0x800
++	JFFS2_SUPER_MAGIC                           = 0x72b6
++	KEXEC_ARCH_386                              = 0x30000
++	KEXEC_ARCH_68K                              = 0x40000
++	KEXEC_ARCH_AARCH64                          = 0xb70000
++	KEXEC_ARCH_ARM                              = 0x280000
++	KEXEC_ARCH_DEFAULT                          = 0x0
++	KEXEC_ARCH_IA_64                            = 0x320000
++	KEXEC_ARCH_MASK                             = 0xffff0000
++	KEXEC_ARCH_MIPS                             = 0x80000
++	KEXEC_ARCH_MIPS_LE                          = 0xa0000
++	KEXEC_ARCH_PARISC                           = 0xf0000
++	KEXEC_ARCH_PPC                              = 0x140000
++	KEXEC_ARCH_PPC64                            = 0x150000
++	KEXEC_ARCH_S390                             = 0x160000
++	KEXEC_ARCH_SH                               = 0x2a0000
++	KEXEC_ARCH_X86_64                           = 0x3e0000
++	KEXEC_FILE_NO_INITRAMFS                     = 0x4
++	KEXEC_FILE_ON_CRASH                         = 0x2
++	KEXEC_FILE_UNLOAD                           = 0x1
++	KEXEC_ON_CRASH                              = 0x1
++	KEXEC_PRESERVE_CONTEXT                      = 0x2
++	KEXEC_SEGMENT_MAX                           = 0x10
++	KEYCTL_ASSUME_AUTHORITY                     = 0x10
++	KEYCTL_CAPABILITIES                         = 0x1f
++	KEYCTL_CAPS0_BIG_KEY                        = 0x10
++	KEYCTL_CAPS0_CAPABILITIES                   = 0x1
++	KEYCTL_CAPS0_DIFFIE_HELLMAN                 = 0x4
++	KEYCTL_CAPS0_INVALIDATE                     = 0x20
++	KEYCTL_CAPS0_MOVE                           = 0x80
++	KEYCTL_CAPS0_PERSISTENT_KEYRINGS            = 0x2
++	KEYCTL_CAPS0_PUBLIC_KEY                     = 0x8
++	KEYCTL_CAPS0_RESTRICT_KEYRING               = 0x40
++	KEYCTL_CAPS1_NS_KEYRING_NAME                = 0x1
++	KEYCTL_CAPS1_NS_KEY_TAG                     = 0x2
++	KEYCTL_CHOWN                                = 0x4
++	KEYCTL_CLEAR                                = 0x7
++	KEYCTL_DESCRIBE                             = 0x6
++	KEYCTL_DH_COMPUTE                           = 0x17
++	KEYCTL_GET_KEYRING_ID                       = 0x0
++	KEYCTL_GET_PERSISTENT                       = 0x16
++	KEYCTL_GET_SECURITY                         = 0x11
++	KEYCTL_INSTANTIATE                          = 0xc
++	KEYCTL_INSTANTIATE_IOV                      = 0x14
++	KEYCTL_INVALIDATE                           = 0x15
++	KEYCTL_JOIN_SESSION_KEYRING                 = 0x1
++	KEYCTL_LINK                                 = 0x8
++	KEYCTL_MOVE                                 = 0x1e
++	KEYCTL_MOVE_EXCL                            = 0x1
++	KEYCTL_NEGATE                               = 0xd
++	KEYCTL_PKEY_DECRYPT                         = 0x1a
++	KEYCTL_PKEY_ENCRYPT                         = 0x19
++	KEYCTL_PKEY_QUERY                           = 0x18
++	KEYCTL_PKEY_SIGN                            = 0x1b
++	KEYCTL_PKEY_VERIFY                          = 0x1c
++	KEYCTL_READ                                 = 0xb
++	KEYCTL_REJECT                               = 0x13
++	KEYCTL_RESTRICT_KEYRING                     = 0x1d
++	KEYCTL_REVOKE                               = 0x3
++	KEYCTL_SEARCH                               = 0xa
++	KEYCTL_SESSION_TO_PARENT                    = 0x12
++	KEYCTL_SETPERM                              = 0x5
++	KEYCTL_SET_REQKEY_KEYRING                   = 0xe
++	KEYCTL_SET_TIMEOUT                          = 0xf
++	KEYCTL_SUPPORTS_DECRYPT                     = 0x2
++	KEYCTL_SUPPORTS_ENCRYPT                     = 0x1
++	KEYCTL_SUPPORTS_SIGN                        = 0x4
++	KEYCTL_SUPPORTS_VERIFY                      = 0x8
++	KEYCTL_UNLINK                               = 0x9
++	KEYCTL_UPDATE                               = 0x2
++	KEY_REQKEY_DEFL_DEFAULT                     = 0x0
++	KEY_REQKEY_DEFL_GROUP_KEYRING               = 0x6
++	KEY_REQKEY_DEFL_NO_CHANGE                   = -0x1
++	KEY_REQKEY_DEFL_PROCESS_KEYRING             = 0x2
++	KEY_REQKEY_DEFL_REQUESTOR_KEYRING           = 0x7
++	KEY_REQKEY_DEFL_SESSION_KEYRING             = 0x3
++	KEY_REQKEY_DEFL_THREAD_KEYRING              = 0x1
++	KEY_REQKEY_DEFL_USER_KEYRING                = 0x4
++	KEY_REQKEY_DEFL_USER_SESSION_KEYRING        = 0x5
++	KEY_SPEC_GROUP_KEYRING                      = -0x6
++	KEY_SPEC_PROCESS_KEYRING                    = -0x2
++	KEY_SPEC_REQKEY_AUTH_KEY                    = -0x7
++	KEY_SPEC_REQUESTOR_KEYRING                  = -0x8
++	KEY_SPEC_SESSION_KEYRING                    = -0x3
++	KEY_SPEC_THREAD_KEYRING                     = -0x1
++	KEY_SPEC_USER_KEYRING                       = -0x4
++	KEY_SPEC_USER_SESSION_KEYRING               = -0x5
++	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
++	LOOP_CLR_FD                                 = 0x4c01
++	LOOP_CTL_ADD                                = 0x4c80
++	LOOP_CTL_GET_FREE                           = 0x4c82
++	LOOP_CTL_REMOVE                             = 0x4c81
++	LOOP_GET_STATUS                             = 0x4c03
++	LOOP_GET_STATUS64                           = 0x4c05
++	LOOP_SET_BLOCK_SIZE                         = 0x4c09
++	LOOP_SET_CAPACITY                           = 0x4c07
++	LOOP_SET_DIRECT_IO                          = 0x4c08
++	LOOP_SET_FD                                 = 0x4c00
++	LOOP_SET_STATUS                             = 0x4c02
++	LOOP_SET_STATUS64                           = 0x4c04
++	LO_KEY_SIZE                                 = 0x20
++	LO_NAME_SIZE                                = 0x40
++	MADV_COLD                                   = 0x14
++	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_KEEPONFORK                             = 0x13
++	MADV_MERGEABLE                              = 0xc
++	MADV_NOHUGEPAGE                             = 0xf
++	MADV_NORMAL                                 = 0x0
++	MADV_PAGEOUT                                = 0x15
++	MADV_RANDOM                                 = 0x1
++	MADV_REMOVE                                 = 0x9
++	MADV_SEQUENTIAL                             = 0x2
++	MADV_UNMERGEABLE                            = 0xd
++	MADV_WILLNEED                               = 0x3
++	MADV_WIPEONFORK                             = 0x12
++	MAP_FILE                                    = 0x0
++	MAP_FIXED                                   = 0x10
++	MAP_FIXED_NOREPLACE                         = 0x100000
++	MAP_HUGE_MASK                               = 0x3f
++	MAP_HUGE_SHIFT                              = 0x1a
++	MAP_PRIVATE                                 = 0x2
++	MAP_SHARED                                  = 0x1
++	MAP_SHARED_VALIDATE                         = 0x3
++	MAP_TYPE                                    = 0xf
++	MCAST_BLOCK_SOURCE                          = 0x2b
++	MCAST_EXCLUDE                               = 0x0
++	MCAST_INCLUDE                               = 0x1
++	MCAST_JOIN_GROUP                            = 0x2a
++	MCAST_JOIN_SOURCE_GROUP                     = 0x2e
++	MCAST_LEAVE_GROUP                           = 0x2d
++	MCAST_LEAVE_SOURCE_GROUP                    = 0x2f
++	MCAST_MSFILTER                              = 0x30
++	MCAST_UNBLOCK_SOURCE                        = 0x2c
++	MFD_ALLOW_SEALING                           = 0x2
++	MFD_CLOEXEC                                 = 0x1
++	MFD_HUGETLB                                 = 0x4
++	MFD_HUGE_16GB                               = -0x78000000
++	MFD_HUGE_16MB                               = 0x60000000
++	MFD_HUGE_1GB                                = 0x78000000
++	MFD_HUGE_1MB                                = 0x50000000
++	MFD_HUGE_256MB                              = 0x70000000
++	MFD_HUGE_2GB                                = 0x7c000000
++	MFD_HUGE_2MB                                = 0x54000000
++	MFD_HUGE_32MB                               = 0x64000000
++	MFD_HUGE_512KB                              = 0x4c000000
++	MFD_HUGE_512MB                              = 0x74000000
++	MFD_HUGE_64KB                               = 0x40000000
++	MFD_HUGE_8MB                                = 0x5c000000
++	MFD_HUGE_MASK                               = 0x3f
++	MFD_HUGE_SHIFT                              = 0x1a
++	MINIX2_SUPER_MAGIC                          = 0x2468
++	MINIX2_SUPER_MAGIC2                         = 0x2478
++	MINIX3_SUPER_MAGIC                          = 0x4d5a
++	MINIX_SUPER_MAGIC                           = 0x137f
++	MINIX_SUPER_MAGIC2                          = 0x138f
++	MNT_DETACH                                  = 0x2
++	MNT_EXPIRE                                  = 0x4
++	MNT_FORCE                                   = 0x1
++	MODULE_INIT_IGNORE_MODVERSIONS              = 0x1
++	MODULE_INIT_IGNORE_VERMAGIC                 = 0x2
++	MSDOS_SUPER_MAGIC                           = 0x4d44
++	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
++	MSG_ZEROCOPY                                = 0x4000000
++	MS_ACTIVE                                   = 0x40000000
++	MS_ASYNC                                    = 0x1
++	MS_BIND                                     = 0x1000
++	MS_BORN                                     = 0x20000000
++	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_NOREMOTELOCK                             = 0x8000000
++	MS_NOSEC                                    = 0x10000000
++	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_SUBMOUNT                                 = 0x4000000
++	MS_SYNC                                     = 0x4
++	MS_SYNCHRONOUS                              = 0x10
++	MS_UNBINDABLE                               = 0x20000
++	MS_VERBOSE                                  = 0x8000
++	MTD_INODE_FS_MAGIC                          = 0x11307854
++	NAME_MAX                                    = 0xff
++	NCP_SUPER_MAGIC                             = 0x564c
++	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_EXT_ACK                             = 0xb
++	NETLINK_FIB_LOOKUP                          = 0xa
++	NETLINK_FIREWALL                            = 0x3
++	NETLINK_GENERIC                             = 0x10
++	NETLINK_GET_STRICT_CHK                      = 0xc
++	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_SMC                                 = 0x16
++	NETLINK_SOCK_DIAG                           = 0x4
++	NETLINK_TX_RING                             = 0x7
++	NETLINK_UNUSED                              = 0x1
++	NETLINK_USERSOCK                            = 0x2
++	NETLINK_XFRM                                = 0x6
++	NETNSA_MAX                                  = 0x5
++	NETNSA_NSID_NOT_ASSIGNED                    = -0x1
++	NFNETLINK_V0                                = 0x0
++	NFNLGRP_ACCT_QUOTA                          = 0x8
++	NFNLGRP_CONNTRACK_DESTROY                   = 0x3
++	NFNLGRP_CONNTRACK_EXP_DESTROY               = 0x6
++	NFNLGRP_CONNTRACK_EXP_NEW                   = 0x4
++	NFNLGRP_CONNTRACK_EXP_UPDATE                = 0x5
++	NFNLGRP_CONNTRACK_NEW                       = 0x1
++	NFNLGRP_CONNTRACK_UPDATE                    = 0x2
++	NFNLGRP_MAX                                 = 0x9
++	NFNLGRP_NFTABLES                            = 0x7
++	NFNLGRP_NFTRACE                             = 0x9
++	NFNLGRP_NONE                                = 0x0
++	NFNL_BATCH_MAX                              = 0x1
++	NFNL_MSG_BATCH_BEGIN                        = 0x10
++	NFNL_MSG_BATCH_END                          = 0x11
++	NFNL_NFA_NEST                               = 0x8000
++	NFNL_SUBSYS_ACCT                            = 0x7
++	NFNL_SUBSYS_COUNT                           = 0xc
++	NFNL_SUBSYS_CTHELPER                        = 0x9
++	NFNL_SUBSYS_CTNETLINK                       = 0x1
++	NFNL_SUBSYS_CTNETLINK_EXP                   = 0x2
++	NFNL_SUBSYS_CTNETLINK_TIMEOUT               = 0x8
++	NFNL_SUBSYS_IPSET                           = 0x6
++	NFNL_SUBSYS_NFTABLES                        = 0xa
++	NFNL_SUBSYS_NFT_COMPAT                      = 0xb
++	NFNL_SUBSYS_NONE                            = 0x0
++	NFNL_SUBSYS_OSF                             = 0x5
++	NFNL_SUBSYS_QUEUE                           = 0x3
++	NFNL_SUBSYS_ULOG                            = 0x4
++	NFS_SUPER_MAGIC                             = 0x6969
++	NILFS_SUPER_MAGIC                           = 0x3434
++	NL0                                         = 0x0
++	NL1                                         = 0x100
++	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_ACK_TLVS                              = 0x200
++	NLM_F_APPEND                                = 0x800
++	NLM_F_ATOMIC                                = 0x400
++	NLM_F_CAPPED                                = 0x100
++	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_NONREC                                = 0x100
++	NLM_F_REPLACE                               = 0x100
++	NLM_F_REQUEST                               = 0x1
++	NLM_F_ROOT                                  = 0x100
++	NSFS_MAGIC                                  = 0x6e736673
++	OCFS2_SUPER_MAGIC                           = 0x7461636f
++	OCRNL                                       = 0x8
++	OFDEL                                       = 0x80
++	OFILL                                       = 0x40
++	ONLRET                                      = 0x20
++	ONOCR                                       = 0x10
++	OPENPROM_SUPER_MAGIC                        = 0x9fa1
++	OPOST                                       = 0x1
++	OVERLAYFS_SUPER_MAGIC                       = 0x794c7630
++	O_ACCMODE                                   = 0x3
++	O_RDONLY                                    = 0x0
++	O_RDWR                                      = 0x2
++	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_FLAG_UNIQUEID                 = 0x2000
++	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_IGNORE_OUTGOING                      = 0x17
++	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
++	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
++	PIPEFS_MAGIC                                = 0x50495045
++	PPC_CMM_MAGIC                               = 0xc7571590
++	PPPIOCGNPMODE                               = 0xc008744c
++	PPPIOCNEWUNIT                               = 0xc004743e
++	PRIO_PGRP                                   = 0x1
++	PRIO_PROCESS                                = 0x0
++	PRIO_USER                                   = 0x2
++	PROC_SUPER_MAGIC                            = 0x9fa0
++	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_IO_FLUSHER                           = 0x3a
++	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_SPECULATION_CTRL                     = 0x34
++	PR_GET_TAGGED_ADDR_CTRL                     = 0x38
++	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_PAC_APDAKEY                              = 0x4
++	PR_PAC_APDBKEY                              = 0x8
++	PR_PAC_APGAKEY                              = 0x10
++	PR_PAC_APIAKEY                              = 0x1
++	PR_PAC_APIBKEY                              = 0x2
++	PR_PAC_RESET_KEYS                           = 0x36
++	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_IO_FLUSHER                           = 0x39
++	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_SECCOMP                              = 0x16
++	PR_SET_SECUREBITS                           = 0x1c
++	PR_SET_SPECULATION_CTRL                     = 0x35
++	PR_SET_TAGGED_ADDR_CTRL                     = 0x37
++	PR_SET_THP_DISABLE                          = 0x29
++	PR_SET_TIMERSLACK                           = 0x1d
++	PR_SET_TIMING                               = 0xe
++	PR_SET_TSC                                  = 0x1a
++	PR_SET_UNALIGN                              = 0x6
++	PR_SPEC_DISABLE                             = 0x4
++	PR_SPEC_DISABLE_NOEXEC                      = 0x10
++	PR_SPEC_ENABLE                              = 0x2
++	PR_SPEC_FORCE_DISABLE                       = 0x8
++	PR_SPEC_INDIRECT_BRANCH                     = 0x1
++	PR_SPEC_NOT_AFFECTED                        = 0x0
++	PR_SPEC_PRCTL                               = 0x1
++	PR_SPEC_STORE_BYPASS                        = 0x0
++	PR_SVE_GET_VL                               = 0x33
++	PR_SVE_SET_VL                               = 0x32
++	PR_SVE_SET_VL_ONEXEC                        = 0x40000
++	PR_SVE_VL_INHERIT                           = 0x20000
++	PR_SVE_VL_LEN_MASK                          = 0xffff
++	PR_TAGGED_ADDR_ENABLE                       = 0x1
++	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
++	PSTOREFS_MAGIC                              = 0x6165676c
++	PTRACE_ATTACH                               = 0x10
++	PTRACE_CONT                                 = 0x7
++	PTRACE_DETACH                               = 0x11
++	PTRACE_EVENTMSG_SYSCALL_ENTRY               = 0x1
++	PTRACE_EVENTMSG_SYSCALL_EXIT                = 0x2
++	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_SYSCALL_INFO                     = 0x420e
++	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_SECCOMP_GET_FILTER                   = 0x420c
++	PTRACE_SECCOMP_GET_METADATA                 = 0x420d
++	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_SYSCALL_INFO_ENTRY                   = 0x1
++	PTRACE_SYSCALL_INFO_EXIT                    = 0x2
++	PTRACE_SYSCALL_INFO_NONE                    = 0x0
++	PTRACE_SYSCALL_INFO_SECCOMP                 = 0x3
++	PTRACE_TRACEME                              = 0x0
++	QNX4_SUPER_MAGIC                            = 0x2f
++	QNX6_SUPER_MAGIC                            = 0x68191122
++	RAMFS_MAGIC                                 = 0x858458f6
++	RDTGROUP_SUPER_MAGIC                        = 0x7655821
++	REISERFS_SUPER_MAGIC                        = 0x52654973
++	RENAME_EXCHANGE                             = 0x2
++	RENAME_NOREPLACE                            = 0x1
++	RENAME_WHITEOUT                             = 0x4
++	RLIMIT_CORE                                 = 0x4
++	RLIMIT_CPU                                  = 0x0
++	RLIMIT_DATA                                 = 0x2
++	RLIMIT_FSIZE                                = 0x1
++	RLIMIT_LOCKS                                = 0xa
++	RLIMIT_MSGQUEUE                             = 0xc
++	RLIMIT_NICE                                 = 0xd
++	RLIMIT_RTPRIO                               = 0xe
++	RLIMIT_RTTIME                               = 0xf
++	RLIMIT_SIGPENDING                           = 0xb
++	RLIMIT_STACK                                = 0x3
++	RLIM_INFINITY                               = 0xffffffffffffffff
++	RTAX_ADVMSS                                 = 0x8
++	RTAX_CC_ALGO                                = 0x10
++	RTAX_CWND                                   = 0x7
++	RTAX_FASTOPEN_NO_COOKIE                     = 0x11
++	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                                    = 0x11
++	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                                     = 0x1e
++	RTCF_DIRECTSRC                              = 0x4000000
++	RTCF_DOREDIRECT                             = 0x1000000
++	RTCF_LOG                                    = 0x2000000
++	RTCF_MASQ                                   = 0x400000
++	RTCF_NAT                                    = 0x800000
++	RTCF_VALVE                                  = 0x200000
++	RTC_AF                                      = 0x20
++	RTC_IRQF                                    = 0x80
++	RTC_MAX_FREQ                                = 0x2000
++	RTC_PF                                      = 0x40
++	RTC_UF                                      = 0x10
++	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
++	RTMGRP_DECnet_IFADDR                        = 0x1000
++	RTMGRP_DECnet_ROUTE                         = 0x4000
++	RTMGRP_IPV4_IFADDR                          = 0x10
++	RTMGRP_IPV4_MROUTE                          = 0x20
++	RTMGRP_IPV4_ROUTE                           = 0x40
++	RTMGRP_IPV4_RULE                            = 0x80
++	RTMGRP_IPV6_IFADDR                          = 0x100
++	RTMGRP_IPV6_IFINFO                          = 0x800
++	RTMGRP_IPV6_MROUTE                          = 0x200
++	RTMGRP_IPV6_PREFIX                          = 0x20000
++	RTMGRP_IPV6_ROUTE                           = 0x400
++	RTMGRP_LINK                                 = 0x1
++	RTMGRP_NEIGH                                = 0x4
++	RTMGRP_NOTIFY                               = 0x2
++	RTMGRP_TC                                   = 0x8
++	RTM_BASE                                    = 0x10
++	RTM_DELACTION                               = 0x31
++	RTM_DELADDR                                 = 0x15
++	RTM_DELADDRLABEL                            = 0x49
++	RTM_DELCHAIN                                = 0x65
++	RTM_DELLINK                                 = 0x11
++	RTM_DELLINKPROP                             = 0x6d
++	RTM_DELMDB                                  = 0x55
++	RTM_DELNEIGH                                = 0x1d
++	RTM_DELNETCONF                              = 0x51
++	RTM_DELNEXTHOP                              = 0x69
++	RTM_DELNSID                                 = 0x59
++	RTM_DELQDISC                                = 0x25
++	RTM_DELROUTE                                = 0x19
++	RTM_DELRULE                                 = 0x21
++	RTM_DELTCLASS                               = 0x29
++	RTM_DELTFILTER                              = 0x2d
++	RTM_DELVLAN                                 = 0x71
++	RTM_F_CLONED                                = 0x200
++	RTM_F_EQUALIZE                              = 0x400
++	RTM_F_FIB_MATCH                             = 0x2000
++	RTM_F_LOOKUP_TABLE                          = 0x1000
++	RTM_F_NOTIFY                                = 0x100
++	RTM_F_OFFLOAD                               = 0x4000
++	RTM_F_PREFIX                                = 0x800
++	RTM_F_TRAP                                  = 0x8000
++	RTM_GETACTION                               = 0x32
++	RTM_GETADDR                                 = 0x16
++	RTM_GETADDRLABEL                            = 0x4a
++	RTM_GETANYCAST                              = 0x3e
++	RTM_GETCHAIN                                = 0x66
++	RTM_GETDCB                                  = 0x4e
++	RTM_GETLINK                                 = 0x12
++	RTM_GETLINKPROP                             = 0x6e
++	RTM_GETMDB                                  = 0x56
++	RTM_GETMULTICAST                            = 0x3a
++	RTM_GETNEIGH                                = 0x1e
++	RTM_GETNEIGHTBL                             = 0x42
++	RTM_GETNETCONF                              = 0x52
++	RTM_GETNEXTHOP                              = 0x6a
++	RTM_GETNSID                                 = 0x5a
++	RTM_GETQDISC                                = 0x26
++	RTM_GETROUTE                                = 0x1a
++	RTM_GETRULE                                 = 0x22
++	RTM_GETSTATS                                = 0x5e
++	RTM_GETTCLASS                               = 0x2a
++	RTM_GETTFILTER                              = 0x2e
++	RTM_GETVLAN                                 = 0x72
++	RTM_MAX                                     = 0x73
++	RTM_NEWACTION                               = 0x30
++	RTM_NEWADDR                                 = 0x14
++	RTM_NEWADDRLABEL                            = 0x48
++	RTM_NEWCACHEREPORT                          = 0x60
++	RTM_NEWCHAIN                                = 0x64
++	RTM_NEWLINK                                 = 0x10
++	RTM_NEWLINKPROP                             = 0x6c
++	RTM_NEWMDB                                  = 0x54
++	RTM_NEWNDUSEROPT                            = 0x44
++	RTM_NEWNEIGH                                = 0x1c
++	RTM_NEWNEIGHTBL                             = 0x40
++	RTM_NEWNETCONF                              = 0x50
++	RTM_NEWNEXTHOP                              = 0x68
++	RTM_NEWNSID                                 = 0x58
++	RTM_NEWNVLAN                                = 0x70
++	RTM_NEWPREFIX                               = 0x34
++	RTM_NEWQDISC                                = 0x24
++	RTM_NEWROUTE                                = 0x18
++	RTM_NEWRULE                                 = 0x20
++	RTM_NEWSTATS                                = 0x5c
++	RTM_NEWTCLASS                               = 0x28
++	RTM_NEWTFILTER                              = 0x2c
++	RTM_NR_FAMILIES                             = 0x19
++	RTM_NR_MSGTYPES                             = 0x64
++	RTM_SETDCB                                  = 0x4f
++	RTM_SETLINK                                 = 0x13
++	RTM_SETNEIGHTBL                             = 0x43
++	RTNH_ALIGNTO                                = 0x4
++	RTNH_COMPARE_MASK                           = 0x19
++	RTNH_F_DEAD                                 = 0x1
++	RTNH_F_LINKDOWN                             = 0x10
++	RTNH_F_OFFLOAD                              = 0x8
++	RTNH_F_ONLINK                               = 0x4
++	RTNH_F_PERVASIVE                            = 0x2
++	RTNH_F_UNRESOLVED                           = 0x20
++	RTN_MAX                                     = 0xb
++	RTPROT_BABEL                                = 0x2a
++	RTPROT_BGP                                  = 0xba
++	RTPROT_BIRD                                 = 0xc
++	RTPROT_BOOT                                 = 0x3
++	RTPROT_DHCP                                 = 0x10
++	RTPROT_DNROUTED                             = 0xd
++	RTPROT_EIGRP                                = 0xc0
++	RTPROT_GATED                                = 0x8
++	RTPROT_ISIS                                 = 0xbb
++	RTPROT_KERNEL                               = 0x2
++	RTPROT_MROUTED                              = 0x11
++	RTPROT_MRT                                  = 0xa
++	RTPROT_NTK                                  = 0xf
++	RTPROT_OSPF                                 = 0xbc
++	RTPROT_RA                                   = 0x9
++	RTPROT_REDIRECT                             = 0x1
++	RTPROT_RIP                                  = 0xbd
++	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
++	RWF_APPEND                                  = 0x10
++	RWF_DSYNC                                   = 0x2
++	RWF_HIPRI                                   = 0x1
++	RWF_NOWAIT                                  = 0x8
++	RWF_SUPPORTED                               = 0x1f
++	RWF_SYNC                                    = 0x4
++	RWF_WRITE_LIFE_NOT_SET                      = 0x0
++	SCM_CREDENTIALS                             = 0x2
++	SCM_RIGHTS                                  = 0x1
++	SCM_TIMESTAMP                               = 0x1d
++	SC_LOG_FLUSH                                = 0x100000
++	SECCOMP_MODE_DISABLED                       = 0x0
++	SECCOMP_MODE_FILTER                         = 0x2
++	SECCOMP_MODE_STRICT                         = 0x1
++	SECURITYFS_MAGIC                            = 0x73636673
++	SELINUX_MAGIC                               = 0xf97cff8c
++	SHUT_RD                                     = 0x0
++	SHUT_RDWR                                   = 0x2
++	SHUT_WR                                     = 0x1
++	SIOCADDDLCI                                 = 0x8980
++	SIOCADDMULTI                                = 0x8931
++	SIOCADDRT                                   = 0x890b
++	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
++	SIOCGETLINKNAME                             = 0x89e0
++	SIOCGETNODEID                               = 0x89e1
++	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
++	SIOCGPPPCSTATS                              = 0x89f2
++	SIOCGPPPSTATS                               = 0x89f0
++	SIOCGPPPVER                                 = 0x89f1
++	SIOCGRARP                                   = 0x8961
++	SIOCGSKNS                                   = 0x894c
++	SIOCGSTAMP                                  = 0x8906
++	SIOCGSTAMPNS                                = 0x8907
++	SIOCGSTAMPNS_OLD                            = 0x8907
++	SIOCGSTAMP_OLD                              = 0x8906
++	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
++	SIOCSRARP                                   = 0x8962
++	SIOCWANDEV                                  = 0x894a
++	SMACK_MAGIC                                 = 0x43415d53
++	SMART_AUTOSAVE                              = 0xd2
++	SMART_AUTO_OFFLINE                          = 0xdb
++	SMART_DISABLE                               = 0xd9
++	SMART_ENABLE                                = 0xd8
++	SMART_HCYL_PASS                             = 0xc2
++	SMART_IMMEDIATE_OFFLINE                     = 0xd4
++	SMART_LCYL_PASS                             = 0x4f
++	SMART_READ_LOG_SECTOR                       = 0xd5
++	SMART_READ_THRESHOLDS                       = 0xd1
++	SMART_READ_VALUES                           = 0xd0
++	SMART_SAVE                                  = 0xd3
++	SMART_STATUS                                = 0xda
++	SMART_WRITE_LOG_SECTOR                      = 0xd6
++	SMART_WRITE_THRESHOLDS                      = 0xd7
++	SMB_SUPER_MAGIC                             = 0x517b
++	SOCKFS_MAGIC                                = 0x534f434b
++	SOCK_DCCP                                   = 0x6
++	SOCK_IOC_TYPE                               = 0x89
++	SOCK_PACKET                                 = 0xa
++	SOCK_RAW                                    = 0x3
++	SOCK_RDM                                    = 0x4
++	SOCK_SEQPACKET                              = 0x5
++	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_TCP                                     = 0x6
++	SOL_TIPC                                    = 0x10f
++	SOL_TLS                                     = 0x11a
++	SOL_X25                                     = 0x106
++	SOL_XDP                                     = 0x11b
++	SOMAXCONN                                   = 0x1000
++	SO_ATTACH_FILTER                            = 0x1a
++	SO_DEBUG                                    = 0x1
++	SO_DETACH_BPF                               = 0x1b
++	SO_DETACH_FILTER                            = 0x1b
++	SO_EE_CODE_TXTIME_INVALID_PARAM             = 0x1
++	SO_EE_CODE_TXTIME_MISSED                    = 0x2
++	SO_EE_CODE_ZEROCOPY_COPIED                  = 0x1
++	SO_EE_ORIGIN_ICMP                           = 0x2
++	SO_EE_ORIGIN_ICMP6                          = 0x3
++	SO_EE_ORIGIN_LOCAL                          = 0x1
++	SO_EE_ORIGIN_NONE                           = 0x0
++	SO_EE_ORIGIN_TIMESTAMPING                   = 0x4
++	SO_EE_ORIGIN_TXSTATUS                       = 0x4
++	SO_EE_ORIGIN_TXTIME                         = 0x6
++	SO_EE_ORIGIN_ZEROCOPY                       = 0x5
++	SO_GET_FILTER                               = 0x1a
++	SO_NO_CHECK                                 = 0xb
++	SO_PEERNAME                                 = 0x1c
++	SO_PRIORITY                                 = 0xc
++	SO_TIMESTAMP                                = 0x1d
++	SO_TIMESTAMP_OLD                            = 0x1d
++	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
++	SQUASHFS_MAGIC                              = 0x73717368
++	STACK_END_MAGIC                             = 0x57ac6e9d
++	STATX_ALL                                   = 0xfff
++	STATX_ATIME                                 = 0x20
++	STATX_ATTR_APPEND                           = 0x20
++	STATX_ATTR_AUTOMOUNT                        = 0x1000
++	STATX_ATTR_COMPRESSED                       = 0x4
++	STATX_ATTR_ENCRYPTED                        = 0x800
++	STATX_ATTR_IMMUTABLE                        = 0x10
++	STATX_ATTR_NODUMP                           = 0x40
++	STATX_ATTR_VERITY                           = 0x100000
++	STATX_BASIC_STATS                           = 0x7ff
++	STATX_BLOCKS                                = 0x400
++	STATX_BTIME                                 = 0x800
++	STATX_CTIME                                 = 0x80
++	STATX_GID                                   = 0x10
++	STATX_INO                                   = 0x100
++	STATX_MODE                                  = 0x2
++	STATX_MTIME                                 = 0x40
++	STATX_NLINK                                 = 0x4
++	STATX_SIZE                                  = 0x200
++	STATX_TYPE                                  = 0x1
++	STATX_UID                                   = 0x8
++	STATX__RESERVED                             = 0x80000000
++	SYNC_FILE_RANGE_WAIT_AFTER                  = 0x4
++	SYNC_FILE_RANGE_WAIT_BEFORE                 = 0x1
++	SYNC_FILE_RANGE_WRITE                       = 0x2
++	SYNC_FILE_RANGE_WRITE_AND_WAIT              = 0x7
++	SYSFS_MAGIC                                 = 0x62656572
++	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
++	TASKSTATS_CMD_ATTR_MAX                      = 0x4
++	TASKSTATS_CMD_MAX                           = 0x2
++	TASKSTATS_GENL_NAME                         = "TASKSTATS"
++	TASKSTATS_GENL_VERSION                      = 0x1
++	TASKSTATS_TYPE_MAX                          = 0x6
++	TASKSTATS_VERSION                           = 0xa
++	TCIFLUSH                                    = 0x0
++	TCIOFF                                      = 0x2
++	TCIOFLUSH                                   = 0x2
++	TCION                                       = 0x3
++	TCOFLUSH                                    = 0x1
++	TCOOFF                                      = 0x0
++	TCOON                                       = 0x1
++	TCP_BPF_IW                                  = 0x3e9
++	TCP_BPF_SNDCWND_CLAMP                       = 0x3ea
++	TCP_CC_INFO                                 = 0x1a
++	TCP_CM_INQ                                  = 0x24
++	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_FASTOPEN_CONNECT                        = 0x1e
++	TCP_FASTOPEN_KEY                            = 0x21
++	TCP_FASTOPEN_NO_COOKIE                      = 0x22
++	TCP_INFO                                    = 0xb
++	TCP_INQ                                     = 0x24
++	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_EXT                              = 0x20
++	TCP_MD5SIG_FLAG_PREFIX                      = 0x1
++	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_OFF                              = 0x0
++	TCP_REPAIR_OFF_NO_WP                        = -0x1
++	TCP_REPAIR_ON                               = 0x1
++	TCP_REPAIR_OPTIONS                          = 0x16
++	TCP_REPAIR_QUEUE                            = 0x14
++	TCP_REPAIR_WINDOW                           = 0x1d
++	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_TX_DELAY                                = 0x25
++	TCP_ULP                                     = 0x1f
++	TCP_USER_TIMEOUT                            = 0x12
++	TCP_WINDOW_CLAMP                            = 0xa
++	TCP_ZEROCOPY_RECEIVE                        = 0x23
++	TIMER_ABSTIME                               = 0x1
++	TIOCM_DTR                                   = 0x2
++	TIOCM_LE                                    = 0x1
++	TIOCM_RTS                                   = 0x4
++	TIOCPKT_DATA                                = 0x0
++	TIOCPKT_DOSTOP                              = 0x20
++	TIOCPKT_FLUSHREAD                           = 0x1
++	TIOCPKT_FLUSHWRITE                          = 0x2
++	TIOCPKT_IOCTL                               = 0x40
++	TIOCPKT_NOSTOP                              = 0x10
++	TIOCPKT_START                               = 0x8
++	TIOCPKT_STOP                                = 0x4
++	TIPC_ADDR_ID                                = 0x3
++	TIPC_ADDR_MCAST                             = 0x1
++	TIPC_ADDR_NAME                              = 0x2
++	TIPC_ADDR_NAMESEQ                           = 0x1
++	TIPC_AEAD_ALG_NAME                          = 0x20
++	TIPC_AEAD_KEYLEN_MAX                        = 0x24
++	TIPC_AEAD_KEYLEN_MIN                        = 0x14
++	TIPC_AEAD_KEY_SIZE_MAX                      = 0x48
++	TIPC_CFG_SRV                                = 0x0
++	TIPC_CLUSTER_BITS                           = 0xc
++	TIPC_CLUSTER_MASK                           = 0xfff000
++	TIPC_CLUSTER_OFFSET                         = 0xc
++	TIPC_CLUSTER_SIZE                           = 0xfff
++	TIPC_CONN_SHUTDOWN                          = 0x5
++	TIPC_CONN_TIMEOUT                           = 0x82
++	TIPC_CRITICAL_IMPORTANCE                    = 0x3
++	TIPC_DESTNAME                               = 0x3
++	TIPC_DEST_DROPPABLE                         = 0x81
++	TIPC_ERRINFO                                = 0x1
++	TIPC_ERR_NO_NAME                            = 0x1
++	TIPC_ERR_NO_NODE                            = 0x3
++	TIPC_ERR_NO_PORT                            = 0x2
++	TIPC_ERR_OVERLOAD                           = 0x4
++	TIPC_GROUP_JOIN                             = 0x87
++	TIPC_GROUP_LEAVE                            = 0x88
++	TIPC_GROUP_LOOPBACK                         = 0x1
++	TIPC_GROUP_MEMBER_EVTS                      = 0x2
++	TIPC_HIGH_IMPORTANCE                        = 0x2
++	TIPC_IMPORTANCE                             = 0x7f
++	TIPC_LINK_STATE                             = 0x2
++	TIPC_LOW_IMPORTANCE                         = 0x0
++	TIPC_MAX_BEARER_NAME                        = 0x20
++	TIPC_MAX_IF_NAME                            = 0x10
++	TIPC_MAX_LINK_NAME                          = 0x44
++	TIPC_MAX_MEDIA_NAME                         = 0x10
++	TIPC_MAX_USER_MSG_SIZE                      = 0x101d0
++	TIPC_MCAST_BROADCAST                        = 0x85
++	TIPC_MCAST_REPLICAST                        = 0x86
++	TIPC_MEDIUM_IMPORTANCE                      = 0x1
++	TIPC_NODEID_LEN                             = 0x10
++	TIPC_NODELAY                                = 0x8a
++	TIPC_NODE_BITS                              = 0xc
++	TIPC_NODE_MASK                              = 0xfff
++	TIPC_NODE_OFFSET                            = 0x0
++	TIPC_NODE_RECVQ_DEPTH                       = 0x83
++	TIPC_NODE_SIZE                              = 0xfff
++	TIPC_NODE_STATE                             = 0x0
++	TIPC_OK                                     = 0x0
++	TIPC_PUBLISHED                              = 0x1
++	TIPC_RESERVED_TYPES                         = 0x40
++	TIPC_RETDATA                                = 0x2
++	TIPC_SERVICE_ADDR                           = 0x2
++	TIPC_SERVICE_RANGE                          = 0x1
++	TIPC_SOCKET_ADDR                            = 0x3
++	TIPC_SOCK_RECVQ_DEPTH                       = 0x84
++	TIPC_SOCK_RECVQ_USED                        = 0x89
++	TIPC_SRC_DROPPABLE                          = 0x80
++	TIPC_SUBSCR_TIMEOUT                         = 0x3
++	TIPC_SUB_CANCEL                             = 0x4
++	TIPC_SUB_PORTS                              = 0x1
++	TIPC_SUB_SERVICE                            = 0x2
++	TIPC_TOP_SRV                                = 0x1
++	TIPC_WAIT_FOREVER                           = 0xffffffff
++	TIPC_WITHDRAWN                              = 0x2
++	TIPC_ZONE_BITS                              = 0x8
++	TIPC_ZONE_CLUSTER_MASK                      = 0xfffff000
++	TIPC_ZONE_MASK                              = 0xff000000
++	TIPC_ZONE_OFFSET                            = 0x18
++	TIPC_ZONE_SCOPE                             = 0x1
++	TIPC_ZONE_SIZE                              = 0xff
++	TMPFS_MAGIC                                 = 0x1021994
++	TPACKET_ALIGNMENT                           = 0x10
++	TPACKET_HDRLEN                              = 0x34
++	TP_STATUS_AVAILABLE                         = 0x0
++	TP_STATUS_BLK_TMO                           = 0x20
++	TP_STATUS_COPY                              = 0x2
++	TP_STATUS_CSUMNOTREADY                      = 0x8
++	TP_STATUS_CSUM_VALID                        = 0x80
++	TP_STATUS_KERNEL                            = 0x0
++	TP_STATUS_LOSING                            = 0x4
++	TP_STATUS_SENDING                           = 0x2
++	TP_STATUS_SEND_REQUEST                      = 0x1
++	TP_STATUS_TS_RAW_HARDWARE                   = 0x80000000
++	TP_STATUS_TS_SOFTWARE                       = 0x20000000
++	TP_STATUS_TS_SYS_HARDWARE                   = 0x40000000
++	TP_STATUS_USER                              = 0x1
++	TP_STATUS_VLAN_TPID_VALID                   = 0x40
++	TP_STATUS_VLAN_VALID                        = 0x10
++	TP_STATUS_WRONG_FORMAT                      = 0x4
++	TRACEFS_MAGIC                               = 0x74726163
++	TS_COMM_LEN                                 = 0x20
++	UDF_SUPER_MAGIC                             = 0x15013346
++	UMOUNT_NOFOLLOW                             = 0x8
++	USBDEVICE_SUPER_MAGIC                       = 0x9fa2
++	UTIME_NOW                                   = 0x3fffffff
++	UTIME_OMIT                                  = 0x3ffffffe
++	V9FS_MAGIC                                  = 0x1021997
++	VERASE                                      = 0x2
++	VINTR                                       = 0x0
++	VKILL                                       = 0x3
++	VLNEXT                                      = 0xf
++	VMADDR_CID_ANY                              = 0xffffffff
++	VMADDR_CID_HOST                             = 0x2
++	VMADDR_CID_HYPERVISOR                       = 0x0
++	VMADDR_CID_LOCAL                            = 0x1
++	VMADDR_PORT_ANY                             = 0xffffffff
++	VM_SOCKETS_INVALID_VERSION                  = 0xffffffff
++	VQUIT                                       = 0x1
++	VT0                                         = 0x0
++	WALL                                        = 0x40000000
++	WCLONE                                      = 0x80000000
++	WCONTINUED                                  = 0x8
++	WDIOC_SETPRETIMEOUT                         = 0xc0045708
++	WDIOC_SETTIMEOUT                            = 0xc0045706
++	WEXITED                                     = 0x4
++	WIN_ACKMEDIACHANGE                          = 0xdb
++	WIN_CHECKPOWERMODE1                         = 0xe5
++	WIN_CHECKPOWERMODE2                         = 0x98
++	WIN_DEVICE_RESET                            = 0x8
++	WIN_DIAGNOSE                                = 0x90
++	WIN_DOORLOCK                                = 0xde
++	WIN_DOORUNLOCK                              = 0xdf
++	WIN_DOWNLOAD_MICROCODE                      = 0x92
++	WIN_FLUSH_CACHE                             = 0xe7
++	WIN_FLUSH_CACHE_EXT                         = 0xea
++	WIN_FORMAT                                  = 0x50
++	WIN_GETMEDIASTATUS                          = 0xda
++	WIN_IDENTIFY                                = 0xec
++	WIN_IDENTIFY_DMA                            = 0xee
++	WIN_IDLEIMMEDIATE                           = 0xe1
++	WIN_INIT                                    = 0x60
++	WIN_MEDIAEJECT                              = 0xed
++	WIN_MULTREAD                                = 0xc4
++	WIN_MULTREAD_EXT                            = 0x29
++	WIN_MULTWRITE                               = 0xc5
++	WIN_MULTWRITE_EXT                           = 0x39
++	WIN_NOP                                     = 0x0
++	WIN_PACKETCMD                               = 0xa0
++	WIN_PIDENTIFY                               = 0xa1
++	WIN_POSTBOOT                                = 0xdc
++	WIN_PREBOOT                                 = 0xdd
++	WIN_QUEUED_SERVICE                          = 0xa2
++	WIN_READ                                    = 0x20
++	WIN_READDMA                                 = 0xc8
++	WIN_READDMA_EXT                             = 0x25
++	WIN_READDMA_ONCE                            = 0xc9
++	WIN_READDMA_QUEUED                          = 0xc7
++	WIN_READDMA_QUEUED_EXT                      = 0x26
++	WIN_READ_BUFFER                             = 0xe4
++	WIN_READ_EXT                                = 0x24
++	WIN_READ_LONG                               = 0x22
++	WIN_READ_LONG_ONCE                          = 0x23
++	WIN_READ_NATIVE_MAX                         = 0xf8
++	WIN_READ_NATIVE_MAX_EXT                     = 0x27
++	WIN_READ_ONCE                               = 0x21
++	WIN_RECAL                                   = 0x10
++	WIN_RESTORE                                 = 0x10
++	WIN_SECURITY_DISABLE                        = 0xf6
++	WIN_SECURITY_ERASE_PREPARE                  = 0xf3
++	WIN_SECURITY_ERASE_UNIT                     = 0xf4
++	WIN_SECURITY_FREEZE_LOCK                    = 0xf5
++	WIN_SECURITY_SET_PASS                       = 0xf1
++	WIN_SECURITY_UNLOCK                         = 0xf2
++	WIN_SEEK                                    = 0x70
++	WIN_SETFEATURES                             = 0xef
++	WIN_SETIDLE1                                = 0xe3
++	WIN_SETIDLE2                                = 0x97
++	WIN_SETMULT                                 = 0xc6
++	WIN_SET_MAX                                 = 0xf9
++	WIN_SET_MAX_EXT                             = 0x37
++	WIN_SLEEPNOW1                               = 0xe6
++	WIN_SLEEPNOW2                               = 0x99
++	WIN_SMART                                   = 0xb0
++	WIN_SPECIFY                                 = 0x91
++	WIN_SRST                                    = 0x8
++	WIN_STANDBY                                 = 0xe2
++	WIN_STANDBY2                                = 0x96
++	WIN_STANDBYNOW1                             = 0xe0
++	WIN_STANDBYNOW2                             = 0x94
++	WIN_VERIFY                                  = 0x40
++	WIN_VERIFY_EXT                              = 0x42
++	WIN_VERIFY_ONCE                             = 0x41
++	WIN_WRITE                                   = 0x30
++	WIN_WRITEDMA                                = 0xca
++	WIN_WRITEDMA_EXT                            = 0x35
++	WIN_WRITEDMA_ONCE                           = 0xcb
++	WIN_WRITEDMA_QUEUED                         = 0xcc
++	WIN_WRITEDMA_QUEUED_EXT                     = 0x36
++	WIN_WRITE_BUFFER                            = 0xe8
++	WIN_WRITE_EXT                               = 0x34
++	WIN_WRITE_LONG                              = 0x32
++	WIN_WRITE_LONG_ONCE                         = 0x33
++	WIN_WRITE_ONCE                              = 0x31
++	WIN_WRITE_SAME                              = 0xe9
++	WIN_WRITE_VERIFY                            = 0x3c
++	WNOHANG                                     = 0x1
++	WNOTHREAD                                   = 0x20000000
++	WNOWAIT                                     = 0x1000000
++	WSTOPPED                                    = 0x2
++	WUNTRACED                                   = 0x2
++	XATTR_CREATE                                = 0x1
++	XATTR_REPLACE                               = 0x2
++	XDP_COPY                                    = 0x2
++	XDP_FLAGS_DRV_MODE                          = 0x4
++	XDP_FLAGS_HW_MODE                           = 0x8
++	XDP_FLAGS_MASK                              = 0xf
++	XDP_FLAGS_MODES                             = 0xe
++	XDP_FLAGS_SKB_MODE                          = 0x2
++	XDP_FLAGS_UPDATE_IF_NOEXIST                 = 0x1
++	XDP_MMAP_OFFSETS                            = 0x1
++	XDP_OPTIONS                                 = 0x8
++	XDP_OPTIONS_ZEROCOPY                        = 0x1
++	XDP_PACKET_HEADROOM                         = 0x100
++	XDP_PGOFF_RX_RING                           = 0x0
++	XDP_PGOFF_TX_RING                           = 0x80000000
++	XDP_RING_NEED_WAKEUP                        = 0x1
++	XDP_RX_RING                                 = 0x2
++	XDP_SHARED_UMEM                             = 0x1
++	XDP_STATISTICS                              = 0x7
++	XDP_TX_RING                                 = 0x3
++	XDP_UMEM_COMPLETION_RING                    = 0x6
++	XDP_UMEM_FILL_RING                          = 0x5
++	XDP_UMEM_PGOFF_COMPLETION_RING              = 0x180000000
++	XDP_UMEM_PGOFF_FILL_RING                    = 0x100000000
++	XDP_UMEM_REG                                = 0x4
++	XDP_UMEM_UNALIGNED_CHUNK_FLAG               = 0x1
++	XDP_USE_NEED_WAKEUP                         = 0x8
++	XDP_ZEROCOPY                                = 0x4
++	XENFS_SUPER_MAGIC                           = 0xabba1974
++	XFS_SUPER_MAGIC                             = 0x58465342
++	Z3FOLD_MAGIC                                = 0x33
++	ZONEFS_MAGIC                                = 0x5a4f4653
++	ZSMALLOC_MAGIC                              = 0x58295829
++)
++
++// Errors
++const (
++	E2BIG       = syscall.Errno(0x7)
++	EACCES      = syscall.Errno(0xd)
++	EAGAIN      = syscall.Errno(0xb)
++	EBADF       = syscall.Errno(0x9)
++	EBUSY       = syscall.Errno(0x10)
++	ECHILD      = syscall.Errno(0xa)
++	EDOM        = syscall.Errno(0x21)
++	EEXIST      = syscall.Errno(0x11)
++	EFAULT      = syscall.Errno(0xe)
++	EFBIG       = syscall.Errno(0x1b)
++	EINTR       = syscall.Errno(0x4)
++	EINVAL      = syscall.Errno(0x16)
++	EIO         = syscall.Errno(0x5)
++	EISDIR      = syscall.Errno(0x15)
++	EMFILE      = syscall.Errno(0x18)
++	EMLINK      = syscall.Errno(0x1f)
++	ENFILE      = syscall.Errno(0x17)
++	ENODEV      = syscall.Errno(0x13)
++	ENOENT      = syscall.Errno(0x2)
++	ENOEXEC     = syscall.Errno(0x8)
++	ENOMEM      = syscall.Errno(0xc)
++	ENOSPC      = syscall.Errno(0x1c)
++	ENOTBLK     = syscall.Errno(0xf)
++	ENOTDIR     = syscall.Errno(0x14)
++	ENOTTY      = syscall.Errno(0x19)
++	ENXIO       = syscall.Errno(0x6)
++	EPERM       = syscall.Errno(0x1)
++	EPIPE       = syscall.Errno(0x20)
++	ERANGE      = syscall.Errno(0x22)
++	EROFS       = syscall.Errno(0x1e)
++	ESPIPE      = syscall.Errno(0x1d)
++	ESRCH       = syscall.Errno(0x3)
++	ETXTBSY     = syscall.Errno(0x1a)
++	EWOULDBLOCK = syscall.Errno(0xb)
++	EXDEV       = syscall.Errno(0x12)
++)
++
++// Signals
++const (
++	SIGABRT = syscall.Signal(0x6)
++	SIGALRM = syscall.Signal(0xe)
++	SIGFPE  = syscall.Signal(0x8)
++	SIGHUP  = syscall.Signal(0x1)
++	SIGILL  = syscall.Signal(0x4)
++	SIGINT  = syscall.Signal(0x2)
++	SIGIOT  = syscall.Signal(0x6)
++	SIGKILL = syscall.Signal(0x9)
++	SIGPIPE = syscall.Signal(0xd)
++	SIGQUIT = syscall.Signal(0x3)
++	SIGSEGV = syscall.Signal(0xb)
++	SIGTERM = syscall.Signal(0xf)
++	SIGTRAP = syscall.Signal(0x5)
++)
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+index 33ced1ae..028c9d87 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
+@@ -3,7 +3,7 @@
+ 
+ // +build 386,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go
+ 
+ package unix
+@@ -11,1868 +11,487 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x80041270
+-	BLKBSZSET                            = 0x40041271
+-	BLKFLSBUF                            = 0x1261
+-	BLKFRAGET                            = 0x1265
+-	BLKFRASET                            = 0x1264
+-	BLKGETSIZE                           = 0x1260
+-	BLKGETSIZE64                         = 0x80041272
+-	BLKPBSZGET                           = 0x127b
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x1000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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_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                              = 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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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_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_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_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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                          = 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_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
+-	PERF_EVENT_IOC_DISABLE               = 0x2401
+-	PERF_EVENT_IOC_ENABLE                = 0x2400
+-	PERF_EVENT_IOC_ID                    = 0x80042407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409
+-	PERF_EVENT_IOC_PERIOD                = 0x40082404
+-	PERF_EVENT_IOC_REFRESH               = 0x2402
+-	PERF_EVENT_IOC_RESET                 = 0x2403
+-	PERF_EVENT_IOC_SET_BPF               = 0x40042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x40042406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x2405
+-	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_GETFPXREGS                    = 0x12
+-	PTRACE_GETREGS                       = 0xc
+-	PTRACE_GETREGSET                     = 0x4204
+-	PTRACE_GETSIGINFO                    = 0x4202
+-	PTRACE_GETSIGMASK                    = 0x420a
+-	PTRACE_GET_THREAD_AREA               = 0x19
+-	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_PEEKSIGINFO                   = 0x4209
+-	PTRACE_PEEKSIGINFO_SHARED            = 0x1
+-	PTRACE_PEEKTEXT                      = 0x1
+-	PTRACE_PEEKUSR                       = 0x3
+-	PTRACE_POKEDATA                      = 0x5
+-	PTRACE_POKETEXT                      = 0x4
+-	PTRACE_POKEUSR                       = 0x6
+-	PTRACE_SECCOMP_GET_FILTER            = 0x420c
+-	PTRACE_SEIZE                         = 0x4206
+-	PTRACE_SETFPREGS                     = 0xf
+-	PTRACE_SETFPXREGS                    = 0x13
+-	PTRACE_SETOPTIONS                    = 0x4200
+-	PTRACE_SETREGS                       = 0xd
+-	PTRACE_SETREGSET                     = 0x4205
+-	PTRACE_SETSIGINFO                    = 0x4203
+-	PTRACE_SETSIGMASK                    = 0x420b
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x541b
+-	SIOCOUTQ                             = 0x5411
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	TUNATTACHFILTER                      = 0x400854d5
+-	TUNDETACHFILTER                      = 0x400854d6
+-	TUNGETFEATURES                       = 0x800454cf
+-	TUNGETFILTER                         = 0x800854db
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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                             = 0x20
+-	WSTOPPED                             = 0x2
+-	WUNTRACED                            = 0x2
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x80041270
++	BLKBSZSET                        = 0x40041271
++	BLKFLSBUF                        = 0x1261
++	BLKFRAGET                        = 0x1265
++	BLKFRASET                        = 0x1264
++	BLKGETSIZE                       = 0x1260
++	BLKGETSIZE64                     = 0x80041272
++	BLKPBSZGET                       = 0x127b
++	BLKRAGET                         = 0x1263
++	BLKRASET                         = 0x1262
++	BLKROGET                         = 0x125e
++	BLKROSET                         = 0x125d
++	BLKRRPART                        = 0x125f
++	BLKSECTGET                       = 0x1267
++	BLKSECTSET                       = 0x1266
++	BLKSSZGET                        = 0x1268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x1000
++	FP_XSTATE_MAGIC2                 = 0x46505845
++	FS_IOC_ENABLE_VERITY             = 0x40806685
++	FS_IOC_GETFLAGS                  = 0x80046601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
++	F_GETLK                          = 0xc
++	F_GETLK64                        = 0xc
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0xd
++	F_SETLK64                        = 0xd
++	F_SETLKW                         = 0xe
++	F_SETLKW64                       = 0xe
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x8000
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_32BIT                        = 0x40
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x2000
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x4000
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x20
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0xb703
++	NS_GET_OWNER_UID                 = 0xb704
++	NS_GET_PARENT                    = 0xb702
++	NS_GET_USERNS                    = 0xb701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x2401
++	PERF_EVENT_IOC_ENABLE            = 0x2400
++	PERF_EVENT_IOC_ID                = 0x80042407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
++	PERF_EVENT_IOC_PERIOD            = 0x40082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc004240a
++	PERF_EVENT_IOC_REFRESH           = 0x2402
++	PERF_EVENT_IOC_RESET             = 0x2403
++	PERF_EVENT_IOC_SET_BPF           = 0x40042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x40042406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
++	PPPIOCATTACH                     = 0x4004743d
++	PPPIOCATTCHAN                    = 0x40047438
++	PPPIOCCONNECT                    = 0x4004743a
++	PPPIOCDETACH                     = 0x4004743c
++	PPPIOCDISCONN                    = 0x7439
++	PPPIOCGASYNCMAP                  = 0x80047458
++	PPPIOCGCHAN                      = 0x80047437
++	PPPIOCGDEBUG                     = 0x80047441
++	PPPIOCGFLAGS                     = 0x8004745a
++	PPPIOCGIDLE                      = 0x8008743f
++	PPPIOCGIDLE32                    = 0x8008743f
++	PPPIOCGIDLE64                    = 0x8010743f
++	PPPIOCGL2TPSTATS                 = 0x80487436
++	PPPIOCGMRU                       = 0x80047453
++	PPPIOCGRASYNCMAP                 = 0x80047455
++	PPPIOCGUNIT                      = 0x80047456
++	PPPIOCGXASYNCMAP                 = 0x80207450
++	PPPIOCSACTIVE                    = 0x40087446
++	PPPIOCSASYNCMAP                  = 0x40047457
++	PPPIOCSCOMPRESS                  = 0x400c744d
++	PPPIOCSDEBUG                     = 0x40047440
++	PPPIOCSFLAGS                     = 0x40047459
++	PPPIOCSMAXCID                    = 0x40047451
++	PPPIOCSMRRU                      = 0x4004743b
++	PPPIOCSMRU                       = 0x40047452
++	PPPIOCSNPMODE                    = 0x4008744b
++	PPPIOCSPASS                      = 0x40087447
++	PPPIOCSRASYNCMAP                 = 0x40047454
++	PPPIOCSXASYNCMAP                 = 0x4020744f
++	PPPIOCXFERUNIT                   = 0x744e
++	PR_SET_PTRACER_ANY               = 0xffffffff
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GETFPXREGS                = 0x12
++	PTRACE_GET_THREAD_AREA           = 0x19
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SETFPXREGS                = 0x13
++	PTRACE_SET_THREAD_AREA           = 0x1a
++	PTRACE_SINGLEBLOCK               = 0x21
++	PTRACE_SYSEMU                    = 0x1f
++	PTRACE_SYSEMU_SINGLESTEP         = 0x20
++	RLIMIT_AS                        = 0x9
++	RLIMIT_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x40085203
++	RNDADDTOENTCNT                   = 0x40045201
++	RNDCLEARPOOL                     = 0x5206
++	RNDGETENTCNT                     = 0x80045200
++	RNDGETPOOL                       = 0x80085202
++	RNDRESEEDCRNG                    = 0x5207
++	RNDZAPENTCNT                     = 0x5204
++	RTC_AIE_OFF                      = 0x7002
++	RTC_AIE_ON                       = 0x7001
++	RTC_ALM_READ                     = 0x80247008
++	RTC_ALM_SET                      = 0x40247007
++	RTC_EPOCH_READ                   = 0x8004700d
++	RTC_EPOCH_SET                    = 0x4004700e
++	RTC_IRQP_READ                    = 0x8004700b
++	RTC_IRQP_SET                     = 0x4004700c
++	RTC_PIE_OFF                      = 0x7006
++	RTC_PIE_ON                       = 0x7005
++	RTC_PLL_GET                      = 0x801c7011
++	RTC_PLL_SET                      = 0x401c7012
++	RTC_RD_TIME                      = 0x80247009
++	RTC_SET_TIME                     = 0x4024700a
++	RTC_UIE_OFF                      = 0x7004
++	RTC_UIE_ON                       = 0x7003
++	RTC_VL_CLR                       = 0x7014
++	RTC_VL_READ                      = 0x80047013
++	RTC_WIE_OFF                      = 0x7010
++	RTC_WIE_ON                       = 0x700f
++	RTC_WKALM_RD                     = 0x80287010
++	RTC_WKALM_SET                    = 0x4028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x80108907
++	SIOCGSTAMP_NEW                   = 0x80108906
++	SIOCINQ                          = 0x541b
++	SIOCOUTQ                         = 0x5411
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x10
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x11
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x12
++	SO_RCVTIMEO                      = 0x14
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x15
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x540b
++	TCGETA                           = 0x5405
++	TCGETS                           = 0x5401
++	TCGETS2                          = 0x802c542a
++	TCGETX                           = 0x5432
++	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
++	TIOCGISO7816                     = 0x80285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGPGRP                        = 0x540f
++	TIOCGPKT                         = 0x80045438
++	TIOCGPTLCK                       = 0x80045439
++	TIOCGPTN                         = 0x80045430
++	TIOCGPTPEER                      = 0x5441
++	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_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x5411
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	TIOCSLCKTRMIOS                   = 0x5457
++	TIOCSPGRP                        = 0x5410
++	TIOCSPTLCK                       = 0x40045431
++	TIOCSRS485                       = 0x542f
++	TIOCSSERIAL                      = 0x541f
++	TIOCSSOFTCAR                     = 0x541a
++	TIOCSTI                          = 0x5412
++	TIOCSWINSZ                       = 0x5414
++	TIOCVHANGUP                      = 0x5437
++	TOSTOP                           = 0x100
++	TUNATTACHFILTER                  = 0x400854d5
++	TUNDETACHFILTER                  = 0x400854d6
++	TUNGETDEVNETNS                   = 0x54e3
++	TUNGETFEATURES                   = 0x800454cf
++	TUNGETFILTER                     = 0x800854db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETBE                     = 0x800454df
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNGETVNETLE                     = 0x800454dd
++	TUNSETCARRIER                    = 0x400454e2
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETFILTEREBPF                 = 0x800454e1
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	TUNSETLINK                       = 0x400454cd
++	TUNSETNOCSUM                     = 0x400454c8
++	TUNSETOFFLOAD                    = 0x400454d0
++	TUNSETOWNER                      = 0x400454cc
++	TUNSETPERSIST                    = 0x400454cb
++	TUNSETQUEUE                      = 0x400454d9
++	TUNSETSNDBUF                     = 0x400454d4
++	TUNSETSTEERINGEBPF               = 0x800454e0
++	TUNSETTXFILTER                   = 0x400454d1
++	TUNSETVNETBE                     = 0x400454de
++	TUNSETVNETHDRSZ                  = 0x400454d8
++	TUNSETVNETLE                     = 0x400454dc
++	UBI_IOCATT                       = 0x40186f40
++	UBI_IOCDET                       = 0x40046f41
++	UBI_IOCEBCH                      = 0x40044f02
++	UBI_IOCEBER                      = 0x40044f01
++	UBI_IOCEBISMAP                   = 0x80044f05
++	UBI_IOCEBMAP                     = 0x40084f03
++	UBI_IOCEBUNMAP                   = 0x40044f04
++	UBI_IOCMKVOL                     = 0x40986f00
++	UBI_IOCRMVOL                     = 0x40046f01
++	UBI_IOCRNVOL                     = 0x51106f03
++	UBI_IOCRPEB                      = 0x40046f04
++	UBI_IOCRSVOL                     = 0x400c6f02
++	UBI_IOCSETVOLPROP                = 0x40104f06
++	UBI_IOCSPEB                      = 0x40046f05
++	UBI_IOCVOLCRBLK                  = 0x40804f07
++	UBI_IOCVOLRMBLK                  = 0x4f08
++	UBI_IOCVOLUP                     = 0x40084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x4
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x80045702
++	WDIOC_GETPRETIMEOUT              = 0x80045709
++	WDIOC_GETSTATUS                  = 0x80045701
++	WDIOC_GETSUPPORT                 = 0x80285700
++	WDIOC_GETTEMP                    = 0x80045703
++	WDIOC_GETTIMELEFT                = 0x8004570a
++	WDIOC_GETTIMEOUT                 = 0x80045707
++	WDIOC_KEEPALIVE                  = 0x80045705
++	WDIOC_SETOPTIONS                 = 0x80045704
++	WORDSIZE                         = 0x20
++	X86_FXSR_MAGIC                   = 0x0
++	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)
+@@ -1881,23 +500,15 @@ const (
+ 	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)
+@@ -1914,8 +525,6 @@ const (
+ 	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)
+@@ -1923,103 +532,70 @@ const (
+ 	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)
+@@ -2030,171 +606,179 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index a6618fc1..005970f7 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build amd64,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go
+ 
+ package unix
+@@ -11,1869 +11,487 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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
+-	BLKPBSZGET                           = 0x127b
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x1000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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_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_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_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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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
+-	PERF_EVENT_IOC_DISABLE               = 0x2401
+-	PERF_EVENT_IOC_ENABLE                = 0x2400
+-	PERF_EVENT_IOC_ID                    = 0x80082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409
+-	PERF_EVENT_IOC_PERIOD                = 0x40082404
+-	PERF_EVENT_IOC_REFRESH               = 0x2402
+-	PERF_EVENT_IOC_RESET                 = 0x2403
+-	PERF_EVENT_IOC_SET_BPF               = 0x40042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x40082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x2405
+-	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_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_GETSIGMASK                    = 0x420a
+-	PTRACE_GET_THREAD_AREA               = 0x19
+-	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_PEEKSIGINFO                   = 0x4209
+-	PTRACE_PEEKSIGINFO_SHARED            = 0x1
+-	PTRACE_PEEKTEXT                      = 0x1
+-	PTRACE_PEEKUSR                       = 0x3
+-	PTRACE_POKEDATA                      = 0x5
+-	PTRACE_POKETEXT                      = 0x4
+-	PTRACE_POKEUSR                       = 0x6
+-	PTRACE_SECCOMP_GET_FILTER            = 0x420c
+-	PTRACE_SEIZE                         = 0x4206
+-	PTRACE_SETFPREGS                     = 0xf
+-	PTRACE_SETFPXREGS                    = 0x13
+-	PTRACE_SETOPTIONS                    = 0x4200
+-	PTRACE_SETREGS                       = 0xd
+-	PTRACE_SETREGSET                     = 0x4205
+-	PTRACE_SETSIGINFO                    = 0x4203
+-	PTRACE_SETSIGMASK                    = 0x420b
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x541b
+-	SIOCOUTQ                             = 0x5411
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x80081270
++	BLKBSZSET                        = 0x40081271
++	BLKFLSBUF                        = 0x1261
++	BLKFRAGET                        = 0x1265
++	BLKFRASET                        = 0x1264
++	BLKGETSIZE                       = 0x1260
++	BLKGETSIZE64                     = 0x80081272
++	BLKPBSZGET                       = 0x127b
++	BLKRAGET                         = 0x1263
++	BLKRASET                         = 0x1262
++	BLKROGET                         = 0x125e
++	BLKROSET                         = 0x125d
++	BLKRRPART                        = 0x125f
++	BLKSECTGET                       = 0x1267
++	BLKSECTSET                       = 0x1266
++	BLKSSZGET                        = 0x1268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x1000
++	FP_XSTATE_MAGIC2                 = 0x46505845
++	FS_IOC_ENABLE_VERITY             = 0x40806685
++	FS_IOC_GETFLAGS                  = 0x80086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
++	F_GETLK                          = 0x5
++	F_GETLK64                        = 0x5
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0x6
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0x7
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x8000
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_32BIT                        = 0x40
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x2000
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x4000
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x40
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0xb703
++	NS_GET_OWNER_UID                 = 0xb704
++	NS_GET_PARENT                    = 0xb702
++	NS_GET_USERNS                    = 0xb701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x2401
++	PERF_EVENT_IOC_ENABLE            = 0x2400
++	PERF_EVENT_IOC_ID                = 0x80082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
++	PERF_EVENT_IOC_PERIOD            = 0x40082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x2402
++	PERF_EVENT_IOC_RESET             = 0x2403
++	PERF_EVENT_IOC_SET_BPF           = 0x40042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x40082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
++	PPPIOCATTACH                     = 0x4004743d
++	PPPIOCATTCHAN                    = 0x40047438
++	PPPIOCCONNECT                    = 0x4004743a
++	PPPIOCDETACH                     = 0x4004743c
++	PPPIOCDISCONN                    = 0x7439
++	PPPIOCGASYNCMAP                  = 0x80047458
++	PPPIOCGCHAN                      = 0x80047437
++	PPPIOCGDEBUG                     = 0x80047441
++	PPPIOCGFLAGS                     = 0x8004745a
++	PPPIOCGIDLE                      = 0x8010743f
++	PPPIOCGIDLE32                    = 0x8008743f
++	PPPIOCGIDLE64                    = 0x8010743f
++	PPPIOCGL2TPSTATS                 = 0x80487436
++	PPPIOCGMRU                       = 0x80047453
++	PPPIOCGRASYNCMAP                 = 0x80047455
++	PPPIOCGUNIT                      = 0x80047456
++	PPPIOCGXASYNCMAP                 = 0x80207450
++	PPPIOCSACTIVE                    = 0x40107446
++	PPPIOCSASYNCMAP                  = 0x40047457
++	PPPIOCSCOMPRESS                  = 0x4010744d
++	PPPIOCSDEBUG                     = 0x40047440
++	PPPIOCSFLAGS                     = 0x40047459
++	PPPIOCSMAXCID                    = 0x40047451
++	PPPIOCSMRRU                      = 0x4004743b
++	PPPIOCSMRU                       = 0x40047452
++	PPPIOCSNPMODE                    = 0x4008744b
++	PPPIOCSPASS                      = 0x40107447
++	PPPIOCSRASYNCMAP                 = 0x40047454
++	PPPIOCSXASYNCMAP                 = 0x4020744f
++	PPPIOCXFERUNIT                   = 0x744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_ARCH_PRCTL                = 0x1e
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GETFPXREGS                = 0x12
++	PTRACE_GET_THREAD_AREA           = 0x19
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SETFPXREGS                = 0x13
++	PTRACE_SET_THREAD_AREA           = 0x1a
++	PTRACE_SINGLEBLOCK               = 0x21
++	PTRACE_SYSEMU                    = 0x1f
++	PTRACE_SYSEMU_SINGLESTEP         = 0x20
++	RLIMIT_AS                        = 0x9
++	RLIMIT_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x40085203
++	RNDADDTOENTCNT                   = 0x40045201
++	RNDCLEARPOOL                     = 0x5206
++	RNDGETENTCNT                     = 0x80045200
++	RNDGETPOOL                       = 0x80085202
++	RNDRESEEDCRNG                    = 0x5207
++	RNDZAPENTCNT                     = 0x5204
++	RTC_AIE_OFF                      = 0x7002
++	RTC_AIE_ON                       = 0x7001
++	RTC_ALM_READ                     = 0x80247008
++	RTC_ALM_SET                      = 0x40247007
++	RTC_EPOCH_READ                   = 0x8008700d
++	RTC_EPOCH_SET                    = 0x4008700e
++	RTC_IRQP_READ                    = 0x8008700b
++	RTC_IRQP_SET                     = 0x4008700c
++	RTC_PIE_OFF                      = 0x7006
++	RTC_PIE_ON                       = 0x7005
++	RTC_PLL_GET                      = 0x80207011
++	RTC_PLL_SET                      = 0x40207012
++	RTC_RD_TIME                      = 0x80247009
++	RTC_SET_TIME                     = 0x4024700a
++	RTC_UIE_OFF                      = 0x7004
++	RTC_UIE_ON                       = 0x7003
++	RTC_VL_CLR                       = 0x7014
++	RTC_VL_READ                      = 0x80047013
++	RTC_WIE_OFF                      = 0x7010
++	RTC_WIE_ON                       = 0x700f
++	RTC_WKALM_RD                     = 0x80287010
++	RTC_WKALM_SET                    = 0x4028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x80108907
++	SIOCGSTAMP_NEW                   = 0x80108906
++	SIOCINQ                          = 0x541b
++	SIOCOUTQ                         = 0x5411
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x10
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x11
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x12
++	SO_RCVTIMEO                      = 0x14
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x15
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x540b
++	TCGETA                           = 0x5405
++	TCGETS                           = 0x5401
++	TCGETS2                          = 0x802c542a
++	TCGETX                           = 0x5432
++	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
++	TIOCGISO7816                     = 0x80285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGPGRP                        = 0x540f
++	TIOCGPKT                         = 0x80045438
++	TIOCGPTLCK                       = 0x80045439
++	TIOCGPTN                         = 0x80045430
++	TIOCGPTPEER                      = 0x5441
++	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_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x5411
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	TIOCSLCKTRMIOS                   = 0x5457
++	TIOCSPGRP                        = 0x5410
++	TIOCSPTLCK                       = 0x40045431
++	TIOCSRS485                       = 0x542f
++	TIOCSSERIAL                      = 0x541f
++	TIOCSSOFTCAR                     = 0x541a
++	TIOCSTI                          = 0x5412
++	TIOCSWINSZ                       = 0x5414
++	TIOCVHANGUP                      = 0x5437
++	TOSTOP                           = 0x100
++	TUNATTACHFILTER                  = 0x401054d5
++	TUNDETACHFILTER                  = 0x401054d6
++	TUNGETDEVNETNS                   = 0x54e3
++	TUNGETFEATURES                   = 0x800454cf
++	TUNGETFILTER                     = 0x801054db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETBE                     = 0x800454df
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNGETVNETLE                     = 0x800454dd
++	TUNSETCARRIER                    = 0x400454e2
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETFILTEREBPF                 = 0x800454e1
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	TUNSETLINK                       = 0x400454cd
++	TUNSETNOCSUM                     = 0x400454c8
++	TUNSETOFFLOAD                    = 0x400454d0
++	TUNSETOWNER                      = 0x400454cc
++	TUNSETPERSIST                    = 0x400454cb
++	TUNSETQUEUE                      = 0x400454d9
++	TUNSETSNDBUF                     = 0x400454d4
++	TUNSETSTEERINGEBPF               = 0x800454e0
++	TUNSETTXFILTER                   = 0x400454d1
++	TUNSETVNETBE                     = 0x400454de
++	TUNSETVNETHDRSZ                  = 0x400454d8
++	TUNSETVNETLE                     = 0x400454dc
++	UBI_IOCATT                       = 0x40186f40
++	UBI_IOCDET                       = 0x40046f41
++	UBI_IOCEBCH                      = 0x40044f02
++	UBI_IOCEBER                      = 0x40044f01
++	UBI_IOCEBISMAP                   = 0x80044f05
++	UBI_IOCEBMAP                     = 0x40084f03
++	UBI_IOCEBUNMAP                   = 0x40044f04
++	UBI_IOCMKVOL                     = 0x40986f00
++	UBI_IOCRMVOL                     = 0x40046f01
++	UBI_IOCRNVOL                     = 0x51106f03
++	UBI_IOCRPEB                      = 0x40046f04
++	UBI_IOCRSVOL                     = 0x400c6f02
++	UBI_IOCSETVOLPROP                = 0x40104f06
++	UBI_IOCSPEB                      = 0x40046f05
++	UBI_IOCVOLCRBLK                  = 0x40804f07
++	UBI_IOCVOLRMBLK                  = 0x4f08
++	UBI_IOCVOLUP                     = 0x40084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x4
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x80045702
++	WDIOC_GETPRETIMEOUT              = 0x80045709
++	WDIOC_GETSTATUS                  = 0x80045701
++	WDIOC_GETSUPPORT                 = 0x80285700
++	WDIOC_GETTEMP                    = 0x80045703
++	WDIOC_GETTIMELEFT                = 0x8004570a
++	WDIOC_GETTIMEOUT                 = 0x80045707
++	WDIOC_KEEPALIVE                  = 0x80045705
++	WDIOC_SETOPTIONS                 = 0x80045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1882,23 +500,15 @@ const (
+ 	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)
+@@ -1915,8 +525,6 @@ const (
+ 	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)
+@@ -1924,103 +532,70 @@ const (
+ 	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)
+@@ -2031,171 +606,179 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index 1adff0b2..0541f36e 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
+@@ -3,7 +3,7 @@
+ 
+ // +build arm,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1873 +11,493 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x80041270
+-	BLKBSZSET                            = 0x40041271
+-	BLKFLSBUF                            = 0x1261
+-	BLKFRAGET                            = 0x1265
+-	BLKFRASET                            = 0x1264
+-	BLKGETSIZE                           = 0x1260
+-	BLKGETSIZE64                         = 0x80041272
+-	BLKPBSZGET                           = 0x127b
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x1000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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_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                              = 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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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                        = 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_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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                          = 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                              = 0x101000
+-	O_SYNC                               = 0x101000
+-	O_TMPFILE                            = 0x404000
+-	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
+-	PERF_EVENT_IOC_DISABLE               = 0x2401
+-	PERF_EVENT_IOC_ENABLE                = 0x2400
+-	PERF_EVENT_IOC_ID                    = 0x80042407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409
+-	PERF_EVENT_IOC_PERIOD                = 0x40082404
+-	PERF_EVENT_IOC_REFRESH               = 0x2402
+-	PERF_EVENT_IOC_RESET                 = 0x2403
+-	PERF_EVENT_IOC_SET_BPF               = 0x40042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x40042406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x2405
+-	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_GETCRUNCHREGS                 = 0x19
+-	PTRACE_GETEVENTMSG                   = 0x4201
+-	PTRACE_GETFPREGS                     = 0xe
+-	PTRACE_GETHBPREGS                    = 0x1d
+-	PTRACE_GETREGS                       = 0xc
+-	PTRACE_GETREGSET                     = 0x4204
+-	PTRACE_GETSIGINFO                    = 0x4202
+-	PTRACE_GETSIGMASK                    = 0x420a
+-	PTRACE_GETVFPREGS                    = 0x1b
+-	PTRACE_GETWMMXREGS                   = 0x12
+-	PTRACE_GET_THREAD_AREA               = 0x16
+-	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_PEEKSIGINFO                   = 0x4209
+-	PTRACE_PEEKSIGINFO_SHARED            = 0x1
+-	PTRACE_PEEKTEXT                      = 0x1
+-	PTRACE_PEEKUSR                       = 0x3
+-	PTRACE_POKEDATA                      = 0x5
+-	PTRACE_POKETEXT                      = 0x4
+-	PTRACE_POKEUSR                       = 0x6
+-	PTRACE_SECCOMP_GET_FILTER            = 0x420c
+-	PTRACE_SEIZE                         = 0x4206
+-	PTRACE_SETCRUNCHREGS                 = 0x1a
+-	PTRACE_SETFPREGS                     = 0xf
+-	PTRACE_SETHBPREGS                    = 0x1e
+-	PTRACE_SETOPTIONS                    = 0x4200
+-	PTRACE_SETREGS                       = 0xd
+-	PTRACE_SETREGSET                     = 0x4205
+-	PTRACE_SETSIGINFO                    = 0x4203
+-	PTRACE_SETSIGMASK                    = 0x420b
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x541b
+-	SIOCOUTQ                             = 0x5411
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	TUNATTACHFILTER                      = 0x400854d5
+-	TUNDETACHFILTER                      = 0x400854d6
+-	TUNGETFEATURES                       = 0x800454cf
+-	TUNGETFILTER                         = 0x800854db
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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                             = 0x20
+-	WSTOPPED                             = 0x2
+-	WUNTRACED                            = 0x2
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x80041270
++	BLKBSZSET                        = 0x40041271
++	BLKFLSBUF                        = 0x1261
++	BLKFRAGET                        = 0x1265
++	BLKFRASET                        = 0x1264
++	BLKGETSIZE                       = 0x1260
++	BLKGETSIZE64                     = 0x80041272
++	BLKPBSZGET                       = 0x127b
++	BLKRAGET                         = 0x1263
++	BLKRASET                         = 0x1262
++	BLKROGET                         = 0x125e
++	BLKROSET                         = 0x125d
++	BLKRRPART                        = 0x125f
++	BLKSECTGET                       = 0x1267
++	BLKSECTSET                       = 0x1266
++	BLKSSZGET                        = 0x1268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x1000
++	FS_IOC_ENABLE_VERITY             = 0x40806685
++	FS_IOC_GETFLAGS                  = 0x80046601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
++	F_GETLK                          = 0xc
++	F_GETLK64                        = 0xc
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0xd
++	F_SETLK64                        = 0xd
++	F_SETLKW                         = 0xe
++	F_SETLKW64                       = 0xe
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x8000
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x2000
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x4000
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x20
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0xb703
++	NS_GET_OWNER_UID                 = 0xb704
++	NS_GET_PARENT                    = 0xb702
++	NS_GET_USERNS                    = 0xb701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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                      = 0x20000
++	O_NDELAY                         = 0x800
++	O_NOATIME                        = 0x40000
++	O_NOCTTY                         = 0x100
++	O_NOFOLLOW                       = 0x8000
++	O_NONBLOCK                       = 0x800
++	O_PATH                           = 0x200000
++	O_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x404000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x2401
++	PERF_EVENT_IOC_ENABLE            = 0x2400
++	PERF_EVENT_IOC_ID                = 0x80042407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
++	PERF_EVENT_IOC_PERIOD            = 0x40082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc004240a
++	PERF_EVENT_IOC_REFRESH           = 0x2402
++	PERF_EVENT_IOC_RESET             = 0x2403
++	PERF_EVENT_IOC_SET_BPF           = 0x40042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x40042406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
++	PPPIOCATTACH                     = 0x4004743d
++	PPPIOCATTCHAN                    = 0x40047438
++	PPPIOCCONNECT                    = 0x4004743a
++	PPPIOCDETACH                     = 0x4004743c
++	PPPIOCDISCONN                    = 0x7439
++	PPPIOCGASYNCMAP                  = 0x80047458
++	PPPIOCGCHAN                      = 0x80047437
++	PPPIOCGDEBUG                     = 0x80047441
++	PPPIOCGFLAGS                     = 0x8004745a
++	PPPIOCGIDLE                      = 0x8008743f
++	PPPIOCGIDLE32                    = 0x8008743f
++	PPPIOCGIDLE64                    = 0x8010743f
++	PPPIOCGL2TPSTATS                 = 0x80487436
++	PPPIOCGMRU                       = 0x80047453
++	PPPIOCGRASYNCMAP                 = 0x80047455
++	PPPIOCGUNIT                      = 0x80047456
++	PPPIOCGXASYNCMAP                 = 0x80207450
++	PPPIOCSACTIVE                    = 0x40087446
++	PPPIOCSASYNCMAP                  = 0x40047457
++	PPPIOCSCOMPRESS                  = 0x400c744d
++	PPPIOCSDEBUG                     = 0x40047440
++	PPPIOCSFLAGS                     = 0x40047459
++	PPPIOCSMAXCID                    = 0x40047451
++	PPPIOCSMRRU                      = 0x4004743b
++	PPPIOCSMRU                       = 0x40047452
++	PPPIOCSNPMODE                    = 0x4008744b
++	PPPIOCSPASS                      = 0x40087447
++	PPPIOCSRASYNCMAP                 = 0x40047454
++	PPPIOCSXASYNCMAP                 = 0x4020744f
++	PPPIOCXFERUNIT                   = 0x744e
++	PR_SET_PTRACER_ANY               = 0xffffffff
++	PTRACE_GETCRUNCHREGS             = 0x19
++	PTRACE_GETFDPIC                  = 0x1f
++	PTRACE_GETFDPIC_EXEC             = 0x0
++	PTRACE_GETFDPIC_INTERP           = 0x1
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GETHBPREGS                = 0x1d
++	PTRACE_GETVFPREGS                = 0x1b
++	PTRACE_GETWMMXREGS               = 0x12
++	PTRACE_GET_THREAD_AREA           = 0x16
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_SETCRUNCHREGS             = 0x1a
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SETHBPREGS                = 0x1e
++	PTRACE_SETVFPREGS                = 0x1c
++	PTRACE_SETWMMXREGS               = 0x13
++	PTRACE_SET_SYSCALL               = 0x17
++	PT_DATA_ADDR                     = 0x10004
++	PT_TEXT_ADDR                     = 0x10000
++	PT_TEXT_END_ADDR                 = 0x10008
++	RLIMIT_AS                        = 0x9
++	RLIMIT_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x40085203
++	RNDADDTOENTCNT                   = 0x40045201
++	RNDCLEARPOOL                     = 0x5206
++	RNDGETENTCNT                     = 0x80045200
++	RNDGETPOOL                       = 0x80085202
++	RNDRESEEDCRNG                    = 0x5207
++	RNDZAPENTCNT                     = 0x5204
++	RTC_AIE_OFF                      = 0x7002
++	RTC_AIE_ON                       = 0x7001
++	RTC_ALM_READ                     = 0x80247008
++	RTC_ALM_SET                      = 0x40247007
++	RTC_EPOCH_READ                   = 0x8004700d
++	RTC_EPOCH_SET                    = 0x4004700e
++	RTC_IRQP_READ                    = 0x8004700b
++	RTC_IRQP_SET                     = 0x4004700c
++	RTC_PIE_OFF                      = 0x7006
++	RTC_PIE_ON                       = 0x7005
++	RTC_PLL_GET                      = 0x801c7011
++	RTC_PLL_SET                      = 0x401c7012
++	RTC_RD_TIME                      = 0x80247009
++	RTC_SET_TIME                     = 0x4024700a
++	RTC_UIE_OFF                      = 0x7004
++	RTC_UIE_ON                       = 0x7003
++	RTC_VL_CLR                       = 0x7014
++	RTC_VL_READ                      = 0x80047013
++	RTC_WIE_OFF                      = 0x7010
++	RTC_WIE_ON                       = 0x700f
++	RTC_WKALM_RD                     = 0x80287010
++	RTC_WKALM_SET                    = 0x4028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x80108907
++	SIOCGSTAMP_NEW                   = 0x80108906
++	SIOCINQ                          = 0x541b
++	SIOCOUTQ                         = 0x5411
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x10
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x11
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x12
++	SO_RCVTIMEO                      = 0x14
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x15
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x540b
++	TCGETA                           = 0x5405
++	TCGETS                           = 0x5401
++	TCGETS2                          = 0x802c542a
++	TCGETX                           = 0x5432
++	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
++	TIOCGISO7816                     = 0x80285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGPGRP                        = 0x540f
++	TIOCGPKT                         = 0x80045438
++	TIOCGPTLCK                       = 0x80045439
++	TIOCGPTN                         = 0x80045430
++	TIOCGPTPEER                      = 0x5441
++	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_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x5411
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	TIOCSLCKTRMIOS                   = 0x5457
++	TIOCSPGRP                        = 0x5410
++	TIOCSPTLCK                       = 0x40045431
++	TIOCSRS485                       = 0x542f
++	TIOCSSERIAL                      = 0x541f
++	TIOCSSOFTCAR                     = 0x541a
++	TIOCSTI                          = 0x5412
++	TIOCSWINSZ                       = 0x5414
++	TIOCVHANGUP                      = 0x5437
++	TOSTOP                           = 0x100
++	TUNATTACHFILTER                  = 0x400854d5
++	TUNDETACHFILTER                  = 0x400854d6
++	TUNGETDEVNETNS                   = 0x54e3
++	TUNGETFEATURES                   = 0x800454cf
++	TUNGETFILTER                     = 0x800854db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETBE                     = 0x800454df
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNGETVNETLE                     = 0x800454dd
++	TUNSETCARRIER                    = 0x400454e2
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETFILTEREBPF                 = 0x800454e1
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	TUNSETLINK                       = 0x400454cd
++	TUNSETNOCSUM                     = 0x400454c8
++	TUNSETOFFLOAD                    = 0x400454d0
++	TUNSETOWNER                      = 0x400454cc
++	TUNSETPERSIST                    = 0x400454cb
++	TUNSETQUEUE                      = 0x400454d9
++	TUNSETSNDBUF                     = 0x400454d4
++	TUNSETSTEERINGEBPF               = 0x800454e0
++	TUNSETTXFILTER                   = 0x400454d1
++	TUNSETVNETBE                     = 0x400454de
++	TUNSETVNETHDRSZ                  = 0x400454d8
++	TUNSETVNETLE                     = 0x400454dc
++	UBI_IOCATT                       = 0x40186f40
++	UBI_IOCDET                       = 0x40046f41
++	UBI_IOCEBCH                      = 0x40044f02
++	UBI_IOCEBER                      = 0x40044f01
++	UBI_IOCEBISMAP                   = 0x80044f05
++	UBI_IOCEBMAP                     = 0x40084f03
++	UBI_IOCEBUNMAP                   = 0x40044f04
++	UBI_IOCMKVOL                     = 0x40986f00
++	UBI_IOCRMVOL                     = 0x40046f01
++	UBI_IOCRNVOL                     = 0x51106f03
++	UBI_IOCRPEB                      = 0x40046f04
++	UBI_IOCRSVOL                     = 0x400c6f02
++	UBI_IOCSETVOLPROP                = 0x40104f06
++	UBI_IOCSPEB                      = 0x40046f05
++	UBI_IOCVOLCRBLK                  = 0x40804f07
++	UBI_IOCVOLRMBLK                  = 0x4f08
++	UBI_IOCVOLUP                     = 0x40084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x4
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x80045702
++	WDIOC_GETPRETIMEOUT              = 0x80045709
++	WDIOC_GETSTATUS                  = 0x80045701
++	WDIOC_GETSUPPORT                 = 0x80285700
++	WDIOC_GETTEMP                    = 0x80045703
++	WDIOC_GETTIMELEFT                = 0x8004570a
++	WDIOC_GETTIMEOUT                 = 0x80045707
++	WDIOC_KEEPALIVE                  = 0x80045705
++	WDIOC_SETOPTIONS                 = 0x80045704
++	WORDSIZE                         = 0x20
++	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)
+@@ -1886,23 +506,15 @@ const (
+ 	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)
+@@ -1919,8 +531,6 @@ const (
+ 	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)
+@@ -1928,103 +538,70 @@ const (
+ 	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)
+@@ -2035,171 +612,179 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index c0ecd47c..9ee8d1bc 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build arm64,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
+ 
+ package unix
+@@ -11,1858 +11,480 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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
+-	BLKPBSZGET                           = 0x127b
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 0x80000
+-	EPOLL_CTL_ADD                        = 0x1
+-	EPOLL_CTL_DEL                        = 0x2
+-	EPOLL_CTL_MOD                        = 0x3
+-	ESR_MAGIC                            = 0x45535201
+-	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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x1000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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                        = 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_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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                            = 0x404000
+-	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
+-	PERF_EVENT_IOC_DISABLE               = 0x2401
+-	PERF_EVENT_IOC_ENABLE                = 0x2400
+-	PERF_EVENT_IOC_ID                    = 0x80082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409
+-	PERF_EVENT_IOC_PERIOD                = 0x40082404
+-	PERF_EVENT_IOC_REFRESH               = 0x2402
+-	PERF_EVENT_IOC_RESET                 = 0x2403
+-	PERF_EVENT_IOC_SET_BPF               = 0x40042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x40082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x2405
+-	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_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                        = 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_SECCOMP_GET_FILTER            = 0x420c
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x541b
+-	SIOCOUTQ                             = 0x5411
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x80081270
++	BLKBSZSET                        = 0x40081271
++	BLKFLSBUF                        = 0x1261
++	BLKFRAGET                        = 0x1265
++	BLKFRASET                        = 0x1264
++	BLKGETSIZE                       = 0x1260
++	BLKGETSIZE64                     = 0x80081272
++	BLKPBSZGET                       = 0x127b
++	BLKRAGET                         = 0x1263
++	BLKRASET                         = 0x1262
++	BLKROGET                         = 0x125e
++	BLKROSET                         = 0x125d
++	BLKRRPART                        = 0x125f
++	BLKSECTGET                       = 0x1267
++	BLKSECTSET                       = 0x1266
++	BLKSSZGET                        = 0x1268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	ESR_MAGIC                        = 0x45535201
++	EXTPROC                          = 0x10000
++	EXTRA_MAGIC                      = 0x45585401
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x1000
++	FPSIMD_MAGIC                     = 0x46508001
++	FS_IOC_ENABLE_VERITY             = 0x40806685
++	FS_IOC_GETFLAGS                  = 0x80086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
++	F_GETLK                          = 0x5
++	F_GETLK64                        = 0x5
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0x6
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0x7
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x8000
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x2000
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x4000
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x40
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0xb703
++	NS_GET_OWNER_UID                 = 0xb704
++	NS_GET_PARENT                    = 0xb702
++	NS_GET_USERNS                    = 0xb701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x404000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x2401
++	PERF_EVENT_IOC_ENABLE            = 0x2400
++	PERF_EVENT_IOC_ID                = 0x80082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
++	PERF_EVENT_IOC_PERIOD            = 0x40082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x2402
++	PERF_EVENT_IOC_RESET             = 0x2403
++	PERF_EVENT_IOC_SET_BPF           = 0x40042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x40082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
++	PPPIOCATTACH                     = 0x4004743d
++	PPPIOCATTCHAN                    = 0x40047438
++	PPPIOCCONNECT                    = 0x4004743a
++	PPPIOCDETACH                     = 0x4004743c
++	PPPIOCDISCONN                    = 0x7439
++	PPPIOCGASYNCMAP                  = 0x80047458
++	PPPIOCGCHAN                      = 0x80047437
++	PPPIOCGDEBUG                     = 0x80047441
++	PPPIOCGFLAGS                     = 0x8004745a
++	PPPIOCGIDLE                      = 0x8010743f
++	PPPIOCGIDLE32                    = 0x8008743f
++	PPPIOCGIDLE64                    = 0x8010743f
++	PPPIOCGL2TPSTATS                 = 0x80487436
++	PPPIOCGMRU                       = 0x80047453
++	PPPIOCGRASYNCMAP                 = 0x80047455
++	PPPIOCGUNIT                      = 0x80047456
++	PPPIOCGXASYNCMAP                 = 0x80207450
++	PPPIOCSACTIVE                    = 0x40107446
++	PPPIOCSASYNCMAP                  = 0x40047457
++	PPPIOCSCOMPRESS                  = 0x4010744d
++	PPPIOCSDEBUG                     = 0x40047440
++	PPPIOCSFLAGS                     = 0x40047459
++	PPPIOCSMAXCID                    = 0x40047451
++	PPPIOCSMRRU                      = 0x4004743b
++	PPPIOCSMRU                       = 0x40047452
++	PPPIOCSNPMODE                    = 0x4008744b
++	PPPIOCSPASS                      = 0x40107447
++	PPPIOCSRASYNCMAP                 = 0x40047454
++	PPPIOCSXASYNCMAP                 = 0x4020744f
++	PPPIOCXFERUNIT                   = 0x744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_SYSEMU                    = 0x1f
++	PTRACE_SYSEMU_SINGLESTEP         = 0x20
++	RLIMIT_AS                        = 0x9
++	RLIMIT_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x40085203
++	RNDADDTOENTCNT                   = 0x40045201
++	RNDCLEARPOOL                     = 0x5206
++	RNDGETENTCNT                     = 0x80045200
++	RNDGETPOOL                       = 0x80085202
++	RNDRESEEDCRNG                    = 0x5207
++	RNDZAPENTCNT                     = 0x5204
++	RTC_AIE_OFF                      = 0x7002
++	RTC_AIE_ON                       = 0x7001
++	RTC_ALM_READ                     = 0x80247008
++	RTC_ALM_SET                      = 0x40247007
++	RTC_EPOCH_READ                   = 0x8008700d
++	RTC_EPOCH_SET                    = 0x4008700e
++	RTC_IRQP_READ                    = 0x8008700b
++	RTC_IRQP_SET                     = 0x4008700c
++	RTC_PIE_OFF                      = 0x7006
++	RTC_PIE_ON                       = 0x7005
++	RTC_PLL_GET                      = 0x80207011
++	RTC_PLL_SET                      = 0x40207012
++	RTC_RD_TIME                      = 0x80247009
++	RTC_SET_TIME                     = 0x4024700a
++	RTC_UIE_OFF                      = 0x7004
++	RTC_UIE_ON                       = 0x7003
++	RTC_VL_CLR                       = 0x7014
++	RTC_VL_READ                      = 0x80047013
++	RTC_WIE_OFF                      = 0x7010
++	RTC_WIE_ON                       = 0x700f
++	RTC_WKALM_RD                     = 0x80287010
++	RTC_WKALM_SET                    = 0x4028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x80108907
++	SIOCGSTAMP_NEW                   = 0x80108906
++	SIOCINQ                          = 0x541b
++	SIOCOUTQ                         = 0x5411
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x10
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x11
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x12
++	SO_RCVTIMEO                      = 0x14
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x15
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	SVE_MAGIC                        = 0x53564501
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x540b
++	TCGETA                           = 0x5405
++	TCGETS                           = 0x5401
++	TCGETS2                          = 0x802c542a
++	TCGETX                           = 0x5432
++	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
++	TIOCGISO7816                     = 0x80285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGPGRP                        = 0x540f
++	TIOCGPKT                         = 0x80045438
++	TIOCGPTLCK                       = 0x80045439
++	TIOCGPTN                         = 0x80045430
++	TIOCGPTPEER                      = 0x5441
++	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_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x5411
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	TIOCSLCKTRMIOS                   = 0x5457
++	TIOCSPGRP                        = 0x5410
++	TIOCSPTLCK                       = 0x40045431
++	TIOCSRS485                       = 0x542f
++	TIOCSSERIAL                      = 0x541f
++	TIOCSSOFTCAR                     = 0x541a
++	TIOCSTI                          = 0x5412
++	TIOCSWINSZ                       = 0x5414
++	TIOCVHANGUP                      = 0x5437
++	TOSTOP                           = 0x100
++	TUNATTACHFILTER                  = 0x401054d5
++	TUNDETACHFILTER                  = 0x401054d6
++	TUNGETDEVNETNS                   = 0x54e3
++	TUNGETFEATURES                   = 0x800454cf
++	TUNGETFILTER                     = 0x801054db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETBE                     = 0x800454df
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNGETVNETLE                     = 0x800454dd
++	TUNSETCARRIER                    = 0x400454e2
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETFILTEREBPF                 = 0x800454e1
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	TUNSETLINK                       = 0x400454cd
++	TUNSETNOCSUM                     = 0x400454c8
++	TUNSETOFFLOAD                    = 0x400454d0
++	TUNSETOWNER                      = 0x400454cc
++	TUNSETPERSIST                    = 0x400454cb
++	TUNSETQUEUE                      = 0x400454d9
++	TUNSETSNDBUF                     = 0x400454d4
++	TUNSETSTEERINGEBPF               = 0x800454e0
++	TUNSETTXFILTER                   = 0x400454d1
++	TUNSETVNETBE                     = 0x400454de
++	TUNSETVNETHDRSZ                  = 0x400454d8
++	TUNSETVNETLE                     = 0x400454dc
++	UBI_IOCATT                       = 0x40186f40
++	UBI_IOCDET                       = 0x40046f41
++	UBI_IOCEBCH                      = 0x40044f02
++	UBI_IOCEBER                      = 0x40044f01
++	UBI_IOCEBISMAP                   = 0x80044f05
++	UBI_IOCEBMAP                     = 0x40084f03
++	UBI_IOCEBUNMAP                   = 0x40044f04
++	UBI_IOCMKVOL                     = 0x40986f00
++	UBI_IOCRMVOL                     = 0x40046f01
++	UBI_IOCRNVOL                     = 0x51106f03
++	UBI_IOCRPEB                      = 0x40046f04
++	UBI_IOCRSVOL                     = 0x400c6f02
++	UBI_IOCSETVOLPROP                = 0x40104f06
++	UBI_IOCSPEB                      = 0x40046f05
++	UBI_IOCVOLCRBLK                  = 0x40804f07
++	UBI_IOCVOLRMBLK                  = 0x4f08
++	UBI_IOCVOLUP                     = 0x40084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x4
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x80045702
++	WDIOC_GETPRETIMEOUT              = 0x80045709
++	WDIOC_GETSTATUS                  = 0x80045701
++	WDIOC_GETSUPPORT                 = 0x80285700
++	WDIOC_GETTEMP                    = 0x80045703
++	WDIOC_GETTIMELEFT                = 0x8004570a
++	WDIOC_GETTIMEOUT                 = 0x80045707
++	WDIOC_KEEPALIVE                  = 0x80045705
++	WDIOC_SETOPTIONS                 = 0x80045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1871,23 +493,15 @@ const (
+ 	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)
+@@ -1904,8 +518,6 @@ const (
+ 	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)
+@@ -1913,103 +525,70 @@ const (
+ 	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)
+@@ -2020,171 +599,179 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index 900f568a..4826bd70 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
+@@ -3,7 +3,7 @@
+ 
+ // +build mips,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1873 +11,489 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x40041270
+-	BLKBSZSET                            = 0x80041271
+-	BLKFLSBUF                            = 0x20001261
+-	BLKFRAGET                            = 0x20001265
+-	BLKFRASET                            = 0x20001264
+-	BLKGETSIZE                           = 0x20001260
+-	BLKGETSIZE64                         = 0x40041272
+-	BLKPBSZGET                           = 0x2000127b
+-	BLKRAGET                             = 0x20001263
+-	BLKRASET                             = 0x20001262
+-	BLKROGET                             = 0x2000125e
+-	BLKROSET                             = 0x2000125d
+-	BLKRRPART                            = 0x2000125f
+-	BLKSECTGET                           = 0x20001267
+-	BLKSECTSET                           = 0x20001266
+-	BLKSSZGET                            = 0x20001268
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x80
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x2000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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
+-	PERF_EVENT_IOC_DISABLE               = 0x20002401
+-	PERF_EVENT_IOC_ENABLE                = 0x20002400
+-	PERF_EVENT_IOC_ID                    = 0x40042407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409
+-	PERF_EVENT_IOC_PERIOD                = 0x80082404
+-	PERF_EVENT_IOC_REFRESH               = 0x20002402
+-	PERF_EVENT_IOC_RESET                 = 0x20002403
+-	PERF_EVENT_IOC_SET_BPF               = 0x80042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x80042406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x20002405
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x9
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x5
+-	RLIMIT_NPROC                         = 0x8
+-	RLIMIT_RSS                           = 0x7
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	SHUT_RD                              = 0x0
+-	SHUT_RDWR                            = 0x2
+-	SHUT_WR                              = 0x1
+-	SIOCADDDLCI                          = 0x8980
+-	SIOCADDMULTI                         = 0x8931
+-	SIOCADDRT                            = 0x890b
+-	SIOCATMARK                           = 0x40047307
+-	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                            = 0x40047309
+-	SIOCGRARP                            = 0x8961
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x467f
+-	SIOCOUTQ                             = 0x7472
+-	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                            = 0x80047308
+-	SIOCSRARP                            = 0x8962
+-	SIOCWANDEV                           = 0x894a
+-	SOCK_CLOEXEC                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x1
+-	SOCK_IOC_TYPE                        = 0x89
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	VM_SOCKETS_INVALID_VERSION           = 0xffffffff
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x40041270
++	BLKBSZSET                        = 0x80041271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40041272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x80
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x2000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40046601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
++	F_GETLK                          = 0x21
++	F_GETLK64                        = 0x21
++	F_GETOWN                         = 0x17
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x22
++	F_SETLK64                        = 0x22
++	F_SETLKW                         = 0x23
++	F_SETLKW64                       = 0x23
++	F_SETOWN                         = 0x18
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x100
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x80
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x800
++	MAP_ANONYMOUS                    = 0x800
++	MAP_DENYWRITE                    = 0x2000
++	MAP_EXECUTABLE                   = 0x4000
++	MAP_GROWSDOWN                    = 0x1000
++	MAP_HUGETLB                      = 0x80000
++	MAP_LOCKED                       = 0x8000
++	MAP_NONBLOCK                     = 0x20000
++	MAP_NORESERVE                    = 0x400
++	MAP_POPULATE                     = 0x10000
++	MAP_RENAME                       = 0x800
++	MAP_STACK                        = 0x40000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x20
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x4010
++	O_SYNC                           = 0x4010
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40042407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc004240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80042406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4008743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80087446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x800c744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80087447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PR_SET_PTRACER_ANY               = 0xffffffff
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GET_THREAD_AREA           = 0x19
++	PTRACE_GET_THREAD_AREA_3264      = 0xc4
++	PTRACE_GET_WATCH_REGS            = 0xd0
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_PEEKDATA_3264             = 0xc1
++	PTRACE_PEEKTEXT_3264             = 0xc0
++	PTRACE_POKEDATA_3264             = 0xc3
++	PTRACE_POKETEXT_3264             = 0xc2
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SET_THREAD_AREA           = 0x1a
++	PTRACE_SET_WATCH_REGS            = 0xd1
++	RLIMIT_AS                        = 0x6
++	RLIMIT_MEMLOCK                   = 0x9
++	RLIMIT_NOFILE                    = 0x5
++	RLIMIT_NPROC                     = 0x8
++	RLIMIT_RSS                       = 0x7
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4004700d
++	RTC_EPOCH_SET                    = 0x8004700e
++	RTC_IRQP_READ                    = 0x4004700b
++	RTC_IRQP_SET                     = 0x8004700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x401c7011
++	RTC_PLL_SET                      = 0x801c7012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x80
++	SIOCATMARK                       = 0x40047307
++	SIOCGPGRP                        = 0x40047309
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
++	SIOCINQ                          = 0x467f
++	SIOCOUTQ                         = 0x7472
++	SIOCSPGRP                        = 0x80047308
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x1
++	SOCK_NONBLOCK                    = 0x80
++	SOCK_STREAM                      = 0x2
++	SOL_SOCKET                       = 0xffff
++	SO_ACCEPTCONN                    = 0x1009
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x20
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x1029
++	SO_DONTROUTE                     = 0x10
++	SO_ERROR                         = 0x1007
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x8
++	SO_LINGER                        = 0x80
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0x100
++	SO_PASSCRED                      = 0x11
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x12
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1e
++	SO_PROTOCOL                      = 0x1028
++	SO_RCVBUF                        = 0x1002
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x1004
++	SO_RCVTIMEO                      = 0x1006
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x1005
++	SO_STYLE                         = 0x1008
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x1008
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x5407
++	TCGETA                           = 0x5401
++	TCGETS                           = 0x540d
++	TCGETS2                          = 0x4030542a
++	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
++	TIOCGISO7816                     = 0x40285442
++	TIOCGLCKTRMIOS                   = 0x548b
++	TIOCGLTC                         = 0x7474
++	TIOCGPGRP                        = 0x40047477
++	TIOCGPKT                         = 0x40045438
++	TIOCGPTLCK                       = 0x40045439
++	TIOCGPTN                         = 0x40045430
++	TIOCGPTPEER                      = 0x20005441
++	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_RI                         = 0x200
++	TIOCM_RNG                        = 0x200
++	TIOCM_SR                         = 0x20
++	TIOCM_ST                         = 0x10
++	TIOCNOTTY                        = 0x5471
++	TIOCNXCL                         = 0x740e
++	TIOCOUTQ                         = 0x7472
++	TIOCPKT                          = 0x5470
++	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
++	TIOCSISO7816                     = 0xc0285443
++	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
++	TUNGETDEVNETNS                   = 0x200054e3
++	TUNGETFEATURES                   = 0x400454cf
++	TUNGETFILTER                     = 0x400854db
++	TUNGETIFF                        = 0x400454d2
++	TUNGETSNDBUF                     = 0x400454d3
++	TUNGETVNETBE                     = 0x400454df
++	TUNGETVNETHDRSZ                  = 0x400454d7
++	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
++	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
++	TUNSETGROUP                      = 0x800454ce
++	TUNSETIFF                        = 0x800454ca
++	TUNSETIFINDEX                    = 0x800454da
++	TUNSETLINK                       = 0x800454cd
++	TUNSETNOCSUM                     = 0x800454c8
++	TUNSETOFFLOAD                    = 0x800454d0
++	TUNSETOWNER                      = 0x800454cc
++	TUNSETPERSIST                    = 0x800454cb
++	TUNSETQUEUE                      = 0x800454d9
++	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
++	TUNSETTXFILTER                   = 0x800454d1
++	TUNSETVNETBE                     = 0x800454de
++	TUNSETVNETHDRSZ                  = 0x800454d8
++	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x10
++	VEOL                             = 0x11
++	VEOL2                            = 0x6
++	VMIN                             = 0x4
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VSWTCH                           = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
++	WORDSIZE                         = 0x20
++	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)
+@@ -1886,12 +502,8 @@ const (
+ 	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)
+@@ -1899,11 +511,7 @@ const (
+ 	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)
+@@ -1920,8 +528,6 @@ const (
+ 	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)
+@@ -1929,100 +535,68 @@ const (
+ 	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)
+@@ -2036,174 +610,182 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "resource deadlock avoided"},
++	{46, "ENOLCK", "no locks available"},
++	{50, "EBADE", "invalid exchange"},
++	{51, "EBADR", "invalid request descriptor"},
++	{52, "EXFULL", "exchange full"},
++	{53, "ENOANO", "no anode"},
++	{54, "EBADRQC", "invalid request code"},
++	{55, "EBADSLT", "invalid slot"},
++	{56, "EDEADLOCK", "file locking deadlock error"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EMULTIHOP", "multihop attempted"},
++	{77, "EBADMSG", "bad message"},
++	{78, "ENAMETOOLONG", "file name too long"},
++	{79, "EOVERFLOW", "value too large for defined data type"},
++	{80, "ENOTUNIQ", "name not unique on network"},
++	{81, "EBADFD", "file descriptor in bad state"},
++	{82, "EREMCHG", "remote address changed"},
++	{83, "ELIBACC", "can not access a needed shared library"},
++	{84, "ELIBBAD", "accessing a corrupted shared library"},
++	{85, "ELIBSCN", ".lib section in a.out corrupted"},
++	{86, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{87, "ELIBEXEC", "cannot exec a shared library directly"},
++	{88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{89, "ENOSYS", "function not implemented"},
++	{90, "ELOOP", "too many levels of symbolic links"},
++	{91, "ERESTART", "interrupted system call should be restarted"},
++	{92, "ESTRPIPE", "streams pipe error"},
++	{93, "ENOTEMPTY", "directory not empty"},
++	{94, "EUSERS", "too many users"},
++	{95, "ENOTSOCK", "socket operation on non-socket"},
++	{96, "EDESTADDRREQ", "destination address required"},
++	{97, "EMSGSIZE", "message too long"},
++	{98, "EPROTOTYPE", "protocol wrong type for socket"},
++	{99, "ENOPROTOOPT", "protocol not available"},
++	{120, "EPROTONOSUPPORT", "protocol not supported"},
++	{121, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{122, "ENOTSUP", "operation not supported"},
++	{123, "EPFNOSUPPORT", "protocol family not supported"},
++	{124, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{125, "EADDRINUSE", "address already in use"},
++	{126, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{127, "ENETDOWN", "network is down"},
++	{128, "ENETUNREACH", "network is unreachable"},
++	{129, "ENETRESET", "network dropped connection on reset"},
++	{130, "ECONNABORTED", "software caused connection abort"},
++	{131, "ECONNRESET", "connection reset by peer"},
++	{132, "ENOBUFS", "no buffer space available"},
++	{133, "EISCONN", "transport endpoint is already connected"},
++	{134, "ENOTCONN", "transport endpoint is not connected"},
++	{135, "EUCLEAN", "structure needs cleaning"},
++	{137, "ENOTNAM", "not a XENIX named type file"},
++	{138, "ENAVAIL", "no XENIX semaphores available"},
++	{139, "EISNAM", "is a named type file"},
++	{140, "EREMOTEIO", "remote I/O error"},
++	{141, "EINIT", "unknown error 141"},
++	{142, "EREMDEV", "unknown error 142"},
++	{143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{144, "ETOOMANYREFS", "too many references: cannot splice"},
++	{145, "ETIMEDOUT", "connection timed out"},
++	{146, "ECONNREFUSED", "connection refused"},
++	{147, "EHOSTDOWN", "host is down"},
++	{148, "EHOSTUNREACH", "no route to host"},
++	{149, "EALREADY", "operation already in progress"},
++	{150, "EINPROGRESS", "operation now in progress"},
++	{151, "ESTALE", "stale file handle"},
++	{158, "ECANCELED", "operation canceled"},
++	{159, "ENOMEDIUM", "no medium found"},
++	{160, "EMEDIUMTYPE", "wrong medium type"},
++	{161, "ENOKEY", "required key not available"},
++	{162, "EKEYEXPIRED", "key has expired"},
++	{163, "EKEYREVOKED", "key has been revoked"},
++	{164, "EKEYREJECTED", "key was rejected by service"},
++	{165, "EOWNERDEAD", "owner died"},
++	{166, "ENOTRECOVERABLE", "state not recoverable"},
++	{167, "ERFKILL", "operation not possible due to RF-kill"},
++	{168, "EHWPOISON", "memory page has hardware error"},
++	{1133, "EDQUOT", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGUSR1", "user defined signal 1"},
++	{17, "SIGUSR2", "user defined signal 2"},
++	{18, "SIGCHLD", "child exited"},
++	{19, "SIGPWR", "power failure"},
++	{20, "SIGWINCH", "window changed"},
++	{21, "SIGURG", "urgent I/O condition"},
++	{22, "SIGIO", "I/O possible"},
++	{23, "SIGSTOP", "stopped (signal)"},
++	{24, "SIGTSTP", "stopped"},
++	{25, "SIGCONT", "continued"},
++	{26, "SIGTTIN", "stopped (tty input)"},
++	{27, "SIGTTOU", "stopped (tty output)"},
++	{28, "SIGVTALRM", "virtual timer expired"},
++	{29, "SIGPROF", "profiling timer expired"},
++	{30, "SIGXCPU", "CPU time limit exceeded"},
++	{31, "SIGXFSZ", "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
+index 4148f277..2346dc55 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build mips64,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1873 +11,489 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x40081270
+-	BLKBSZSET                            = 0x80081271
+-	BLKFLSBUF                            = 0x20001261
+-	BLKFRAGET                            = 0x20001265
+-	BLKFRASET                            = 0x20001264
+-	BLKGETSIZE                           = 0x20001260
+-	BLKGETSIZE64                         = 0x40081272
+-	BLKPBSZGET                           = 0x2000127b
+-	BLKRAGET                             = 0x20001263
+-	BLKRASET                             = 0x20001262
+-	BLKROGET                             = 0x2000125e
+-	BLKROSET                             = 0x2000125d
+-	BLKRRPART                            = 0x2000125f
+-	BLKSECTGET                           = 0x20001267
+-	BLKSECTSET                           = 0x20001266
+-	BLKSSZGET                            = 0x20001268
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x80
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x2000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                          = 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
+-	PERF_EVENT_IOC_DISABLE               = 0x20002401
+-	PERF_EVENT_IOC_ENABLE                = 0x20002400
+-	PERF_EVENT_IOC_ID                    = 0x40082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409
+-	PERF_EVENT_IOC_PERIOD                = 0x80082404
+-	PERF_EVENT_IOC_REFRESH               = 0x20002402
+-	PERF_EVENT_IOC_RESET                 = 0x20002403
+-	PERF_EVENT_IOC_SET_BPF               = 0x80042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x80082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x20002405
+-	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_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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x9
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x5
+-	RLIMIT_NPROC                         = 0x8
+-	RLIMIT_RSS                           = 0x7
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	SHUT_RD                              = 0x0
+-	SHUT_RDWR                            = 0x2
+-	SHUT_WR                              = 0x1
+-	SIOCADDDLCI                          = 0x8980
+-	SIOCADDMULTI                         = 0x8931
+-	SIOCADDRT                            = 0x890b
+-	SIOCATMARK                           = 0x40047307
+-	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                            = 0x40047309
+-	SIOCGRARP                            = 0x8961
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x467f
+-	SIOCOUTQ                             = 0x7472
+-	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                            = 0x80047308
+-	SIOCSRARP                            = 0x8962
+-	SIOCWANDEV                           = 0x894a
+-	SOCK_CLOEXEC                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x1
+-	SOCK_IOC_TYPE                        = 0x89
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	VM_SOCKETS_INVALID_VERSION           = 0xffffffff
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x40081270
++	BLKBSZSET                        = 0x80081271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40081272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x80
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x2000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
++	F_GETLK                          = 0xe
++	F_GETLK64                        = 0xe
++	F_GETOWN                         = 0x17
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0x6
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0x7
++	F_SETOWN                         = 0x18
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x100
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x80
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x800
++	MAP_ANONYMOUS                    = 0x800
++	MAP_DENYWRITE                    = 0x2000
++	MAP_EXECUTABLE                   = 0x4000
++	MAP_GROWSDOWN                    = 0x1000
++	MAP_HUGETLB                      = 0x80000
++	MAP_LOCKED                       = 0x8000
++	MAP_NONBLOCK                     = 0x20000
++	MAP_NORESERVE                    = 0x400
++	MAP_POPULATE                     = 0x10000
++	MAP_RENAME                       = 0x800
++	MAP_STACK                        = 0x40000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x40
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x4010
++	O_SYNC                           = 0x4010
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4010743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80107446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x8010744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80107447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GET_THREAD_AREA           = 0x19
++	PTRACE_GET_THREAD_AREA_3264      = 0xc4
++	PTRACE_GET_WATCH_REGS            = 0xd0
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_PEEKDATA_3264             = 0xc1
++	PTRACE_PEEKTEXT_3264             = 0xc0
++	PTRACE_POKEDATA_3264             = 0xc3
++	PTRACE_POKETEXT_3264             = 0xc2
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SET_THREAD_AREA           = 0x1a
++	PTRACE_SET_WATCH_REGS            = 0xd1
++	RLIMIT_AS                        = 0x6
++	RLIMIT_MEMLOCK                   = 0x9
++	RLIMIT_NOFILE                    = 0x5
++	RLIMIT_NPROC                     = 0x8
++	RLIMIT_RSS                       = 0x7
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4008700d
++	RTC_EPOCH_SET                    = 0x8008700e
++	RTC_IRQP_READ                    = 0x4008700b
++	RTC_IRQP_SET                     = 0x8008700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x40207011
++	RTC_PLL_SET                      = 0x80207012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x80
++	SIOCATMARK                       = 0x40047307
++	SIOCGPGRP                        = 0x40047309
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
++	SIOCINQ                          = 0x467f
++	SIOCOUTQ                         = 0x7472
++	SIOCSPGRP                        = 0x80047308
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x1
++	SOCK_NONBLOCK                    = 0x80
++	SOCK_STREAM                      = 0x2
++	SOL_SOCKET                       = 0xffff
++	SO_ACCEPTCONN                    = 0x1009
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x20
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x1029
++	SO_DONTROUTE                     = 0x10
++	SO_ERROR                         = 0x1007
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x8
++	SO_LINGER                        = 0x80
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0x100
++	SO_PASSCRED                      = 0x11
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x12
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1e
++	SO_PROTOCOL                      = 0x1028
++	SO_RCVBUF                        = 0x1002
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x1004
++	SO_RCVTIMEO                      = 0x1006
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x1005
++	SO_STYLE                         = 0x1008
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x1008
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x5407
++	TCGETA                           = 0x5401
++	TCGETS                           = 0x540d
++	TCGETS2                          = 0x4030542a
++	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
++	TIOCGISO7816                     = 0x40285442
++	TIOCGLCKTRMIOS                   = 0x548b
++	TIOCGLTC                         = 0x7474
++	TIOCGPGRP                        = 0x40047477
++	TIOCGPKT                         = 0x40045438
++	TIOCGPTLCK                       = 0x40045439
++	TIOCGPTN                         = 0x40045430
++	TIOCGPTPEER                      = 0x20005441
++	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_RI                         = 0x200
++	TIOCM_RNG                        = 0x200
++	TIOCM_SR                         = 0x20
++	TIOCM_ST                         = 0x10
++	TIOCNOTTY                        = 0x5471
++	TIOCNXCL                         = 0x740e
++	TIOCOUTQ                         = 0x7472
++	TIOCPKT                          = 0x5470
++	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
++	TIOCSISO7816                     = 0xc0285443
++	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
++	TUNGETDEVNETNS                   = 0x200054e3
++	TUNGETFEATURES                   = 0x400454cf
++	TUNGETFILTER                     = 0x401054db
++	TUNGETIFF                        = 0x400454d2
++	TUNGETSNDBUF                     = 0x400454d3
++	TUNGETVNETBE                     = 0x400454df
++	TUNGETVNETHDRSZ                  = 0x400454d7
++	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
++	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
++	TUNSETGROUP                      = 0x800454ce
++	TUNSETIFF                        = 0x800454ca
++	TUNSETIFINDEX                    = 0x800454da
++	TUNSETLINK                       = 0x800454cd
++	TUNSETNOCSUM                     = 0x800454c8
++	TUNSETOFFLOAD                    = 0x800454d0
++	TUNSETOWNER                      = 0x800454cc
++	TUNSETPERSIST                    = 0x800454cb
++	TUNSETQUEUE                      = 0x800454d9
++	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
++	TUNSETTXFILTER                   = 0x800454d1
++	TUNSETVNETBE                     = 0x800454de
++	TUNSETVNETHDRSZ                  = 0x800454d8
++	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x10
++	VEOL                             = 0x11
++	VEOL2                            = 0x6
++	VMIN                             = 0x4
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VSWTCH                           = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1886,12 +502,8 @@ const (
+ 	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)
+@@ -1899,11 +511,7 @@ const (
+ 	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)
+@@ -1920,8 +528,6 @@ const (
+ 	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)
+@@ -1929,100 +535,68 @@ const (
+ 	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)
+@@ -2036,174 +610,182 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "resource deadlock avoided"},
++	{46, "ENOLCK", "no locks available"},
++	{50, "EBADE", "invalid exchange"},
++	{51, "EBADR", "invalid request descriptor"},
++	{52, "EXFULL", "exchange full"},
++	{53, "ENOANO", "no anode"},
++	{54, "EBADRQC", "invalid request code"},
++	{55, "EBADSLT", "invalid slot"},
++	{56, "EDEADLOCK", "file locking deadlock error"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EMULTIHOP", "multihop attempted"},
++	{77, "EBADMSG", "bad message"},
++	{78, "ENAMETOOLONG", "file name too long"},
++	{79, "EOVERFLOW", "value too large for defined data type"},
++	{80, "ENOTUNIQ", "name not unique on network"},
++	{81, "EBADFD", "file descriptor in bad state"},
++	{82, "EREMCHG", "remote address changed"},
++	{83, "ELIBACC", "can not access a needed shared library"},
++	{84, "ELIBBAD", "accessing a corrupted shared library"},
++	{85, "ELIBSCN", ".lib section in a.out corrupted"},
++	{86, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{87, "ELIBEXEC", "cannot exec a shared library directly"},
++	{88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{89, "ENOSYS", "function not implemented"},
++	{90, "ELOOP", "too many levels of symbolic links"},
++	{91, "ERESTART", "interrupted system call should be restarted"},
++	{92, "ESTRPIPE", "streams pipe error"},
++	{93, "ENOTEMPTY", "directory not empty"},
++	{94, "EUSERS", "too many users"},
++	{95, "ENOTSOCK", "socket operation on non-socket"},
++	{96, "EDESTADDRREQ", "destination address required"},
++	{97, "EMSGSIZE", "message too long"},
++	{98, "EPROTOTYPE", "protocol wrong type for socket"},
++	{99, "ENOPROTOOPT", "protocol not available"},
++	{120, "EPROTONOSUPPORT", "protocol not supported"},
++	{121, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{122, "ENOTSUP", "operation not supported"},
++	{123, "EPFNOSUPPORT", "protocol family not supported"},
++	{124, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{125, "EADDRINUSE", "address already in use"},
++	{126, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{127, "ENETDOWN", "network is down"},
++	{128, "ENETUNREACH", "network is unreachable"},
++	{129, "ENETRESET", "network dropped connection on reset"},
++	{130, "ECONNABORTED", "software caused connection abort"},
++	{131, "ECONNRESET", "connection reset by peer"},
++	{132, "ENOBUFS", "no buffer space available"},
++	{133, "EISCONN", "transport endpoint is already connected"},
++	{134, "ENOTCONN", "transport endpoint is not connected"},
++	{135, "EUCLEAN", "structure needs cleaning"},
++	{137, "ENOTNAM", "not a XENIX named type file"},
++	{138, "ENAVAIL", "no XENIX semaphores available"},
++	{139, "EISNAM", "is a named type file"},
++	{140, "EREMOTEIO", "remote I/O error"},
++	{141, "EINIT", "unknown error 141"},
++	{142, "EREMDEV", "unknown error 142"},
++	{143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{144, "ETOOMANYREFS", "too many references: cannot splice"},
++	{145, "ETIMEDOUT", "connection timed out"},
++	{146, "ECONNREFUSED", "connection refused"},
++	{147, "EHOSTDOWN", "host is down"},
++	{148, "EHOSTUNREACH", "no route to host"},
++	{149, "EALREADY", "operation already in progress"},
++	{150, "EINPROGRESS", "operation now in progress"},
++	{151, "ESTALE", "stale file handle"},
++	{158, "ECANCELED", "operation canceled"},
++	{159, "ENOMEDIUM", "no medium found"},
++	{160, "EMEDIUMTYPE", "wrong medium type"},
++	{161, "ENOKEY", "required key not available"},
++	{162, "EKEYEXPIRED", "key has expired"},
++	{163, "EKEYREVOKED", "key has been revoked"},
++	{164, "EKEYREJECTED", "key was rejected by service"},
++	{165, "EOWNERDEAD", "owner died"},
++	{166, "ENOTRECOVERABLE", "state not recoverable"},
++	{167, "ERFKILL", "operation not possible due to RF-kill"},
++	{168, "EHWPOISON", "memory page has hardware error"},
++	{1133, "EDQUOT", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGUSR1", "user defined signal 1"},
++	{17, "SIGUSR2", "user defined signal 2"},
++	{18, "SIGCHLD", "child exited"},
++	{19, "SIGPWR", "power failure"},
++	{20, "SIGWINCH", "window changed"},
++	{21, "SIGURG", "urgent I/O condition"},
++	{22, "SIGIO", "I/O possible"},
++	{23, "SIGSTOP", "stopped (signal)"},
++	{24, "SIGTSTP", "stopped"},
++	{25, "SIGCONT", "continued"},
++	{26, "SIGTTIN", "stopped (tty input)"},
++	{27, "SIGTTOU", "stopped (tty output)"},
++	{28, "SIGVTALRM", "virtual timer expired"},
++	{29, "SIGPROF", "profiling timer expired"},
++	{30, "SIGXCPU", "CPU time limit exceeded"},
++	{31, "SIGXFSZ", "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
+index 2310beeb..e758b61e 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
+@@ -3,7 +3,7 @@
+ 
+ // +build mips64le,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1873 +11,489 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x40081270
+-	BLKBSZSET                            = 0x80081271
+-	BLKFLSBUF                            = 0x20001261
+-	BLKFRAGET                            = 0x20001265
+-	BLKFRASET                            = 0x20001264
+-	BLKGETSIZE                           = 0x20001260
+-	BLKGETSIZE64                         = 0x40081272
+-	BLKPBSZGET                           = 0x2000127b
+-	BLKRAGET                             = 0x20001263
+-	BLKRASET                             = 0x20001262
+-	BLKROGET                             = 0x2000125e
+-	BLKROSET                             = 0x2000125d
+-	BLKRRPART                            = 0x2000125f
+-	BLKSECTGET                           = 0x20001267
+-	BLKSECTSET                           = 0x20001266
+-	BLKSSZGET                            = 0x20001268
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x80
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x2000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                          = 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
+-	PERF_EVENT_IOC_DISABLE               = 0x20002401
+-	PERF_EVENT_IOC_ENABLE                = 0x20002400
+-	PERF_EVENT_IOC_ID                    = 0x40082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409
+-	PERF_EVENT_IOC_PERIOD                = 0x80082404
+-	PERF_EVENT_IOC_REFRESH               = 0x20002402
+-	PERF_EVENT_IOC_RESET                 = 0x20002403
+-	PERF_EVENT_IOC_SET_BPF               = 0x80042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x80082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x20002405
+-	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_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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x9
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x5
+-	RLIMIT_NPROC                         = 0x8
+-	RLIMIT_RSS                           = 0x7
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	SHUT_RD                              = 0x0
+-	SHUT_RDWR                            = 0x2
+-	SHUT_WR                              = 0x1
+-	SIOCADDDLCI                          = 0x8980
+-	SIOCADDMULTI                         = 0x8931
+-	SIOCADDRT                            = 0x890b
+-	SIOCATMARK                           = 0x40047307
+-	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                            = 0x40047309
+-	SIOCGRARP                            = 0x8961
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x467f
+-	SIOCOUTQ                             = 0x7472
+-	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                            = 0x80047308
+-	SIOCSRARP                            = 0x8962
+-	SIOCWANDEV                           = 0x894a
+-	SOCK_CLOEXEC                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x1
+-	SOCK_IOC_TYPE                        = 0x89
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	VM_SOCKETS_INVALID_VERSION           = 0xffffffff
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x40081270
++	BLKBSZSET                        = 0x80081271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40081272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x80
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x2000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
++	F_GETLK                          = 0xe
++	F_GETLK64                        = 0xe
++	F_GETOWN                         = 0x17
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0x6
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0x7
++	F_SETOWN                         = 0x18
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x100
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x80
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x800
++	MAP_ANONYMOUS                    = 0x800
++	MAP_DENYWRITE                    = 0x2000
++	MAP_EXECUTABLE                   = 0x4000
++	MAP_GROWSDOWN                    = 0x1000
++	MAP_HUGETLB                      = 0x80000
++	MAP_LOCKED                       = 0x8000
++	MAP_NONBLOCK                     = 0x20000
++	MAP_NORESERVE                    = 0x400
++	MAP_POPULATE                     = 0x10000
++	MAP_RENAME                       = 0x800
++	MAP_STACK                        = 0x40000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x40
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x4010
++	O_SYNC                           = 0x4010
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4010743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80107446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x8010744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80107447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GET_THREAD_AREA           = 0x19
++	PTRACE_GET_THREAD_AREA_3264      = 0xc4
++	PTRACE_GET_WATCH_REGS            = 0xd0
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_PEEKDATA_3264             = 0xc1
++	PTRACE_PEEKTEXT_3264             = 0xc0
++	PTRACE_POKEDATA_3264             = 0xc3
++	PTRACE_POKETEXT_3264             = 0xc2
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SET_THREAD_AREA           = 0x1a
++	PTRACE_SET_WATCH_REGS            = 0xd1
++	RLIMIT_AS                        = 0x6
++	RLIMIT_MEMLOCK                   = 0x9
++	RLIMIT_NOFILE                    = 0x5
++	RLIMIT_NPROC                     = 0x8
++	RLIMIT_RSS                       = 0x7
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4008700d
++	RTC_EPOCH_SET                    = 0x8008700e
++	RTC_IRQP_READ                    = 0x4008700b
++	RTC_IRQP_SET                     = 0x8008700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x40207011
++	RTC_PLL_SET                      = 0x80207012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x80
++	SIOCATMARK                       = 0x40047307
++	SIOCGPGRP                        = 0x40047309
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
++	SIOCINQ                          = 0x467f
++	SIOCOUTQ                         = 0x7472
++	SIOCSPGRP                        = 0x80047308
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x1
++	SOCK_NONBLOCK                    = 0x80
++	SOCK_STREAM                      = 0x2
++	SOL_SOCKET                       = 0xffff
++	SO_ACCEPTCONN                    = 0x1009
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x20
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x1029
++	SO_DONTROUTE                     = 0x10
++	SO_ERROR                         = 0x1007
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x8
++	SO_LINGER                        = 0x80
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0x100
++	SO_PASSCRED                      = 0x11
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x12
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1e
++	SO_PROTOCOL                      = 0x1028
++	SO_RCVBUF                        = 0x1002
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x1004
++	SO_RCVTIMEO                      = 0x1006
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x1005
++	SO_STYLE                         = 0x1008
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x1008
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x5407
++	TCGETA                           = 0x5401
++	TCGETS                           = 0x540d
++	TCGETS2                          = 0x4030542a
++	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
++	TIOCGISO7816                     = 0x40285442
++	TIOCGLCKTRMIOS                   = 0x548b
++	TIOCGLTC                         = 0x7474
++	TIOCGPGRP                        = 0x40047477
++	TIOCGPKT                         = 0x40045438
++	TIOCGPTLCK                       = 0x40045439
++	TIOCGPTN                         = 0x40045430
++	TIOCGPTPEER                      = 0x20005441
++	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_RI                         = 0x200
++	TIOCM_RNG                        = 0x200
++	TIOCM_SR                         = 0x20
++	TIOCM_ST                         = 0x10
++	TIOCNOTTY                        = 0x5471
++	TIOCNXCL                         = 0x740e
++	TIOCOUTQ                         = 0x7472
++	TIOCPKT                          = 0x5470
++	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
++	TIOCSISO7816                     = 0xc0285443
++	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
++	TUNGETDEVNETNS                   = 0x200054e3
++	TUNGETFEATURES                   = 0x400454cf
++	TUNGETFILTER                     = 0x401054db
++	TUNGETIFF                        = 0x400454d2
++	TUNGETSNDBUF                     = 0x400454d3
++	TUNGETVNETBE                     = 0x400454df
++	TUNGETVNETHDRSZ                  = 0x400454d7
++	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
++	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
++	TUNSETGROUP                      = 0x800454ce
++	TUNSETIFF                        = 0x800454ca
++	TUNSETIFINDEX                    = 0x800454da
++	TUNSETLINK                       = 0x800454cd
++	TUNSETNOCSUM                     = 0x800454c8
++	TUNSETOFFLOAD                    = 0x800454d0
++	TUNSETOWNER                      = 0x800454cc
++	TUNSETPERSIST                    = 0x800454cb
++	TUNSETQUEUE                      = 0x800454d9
++	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
++	TUNSETTXFILTER                   = 0x800454d1
++	TUNSETVNETBE                     = 0x800454de
++	TUNSETVNETHDRSZ                  = 0x800454d8
++	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x10
++	VEOL                             = 0x11
++	VEOL2                            = 0x6
++	VMIN                             = 0x4
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VSWTCH                           = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1886,12 +502,8 @@ const (
+ 	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)
+@@ -1899,11 +511,7 @@ const (
+ 	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)
+@@ -1920,8 +528,6 @@ const (
+ 	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)
+@@ -1929,100 +535,68 @@ const (
+ 	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)
+@@ -2036,174 +610,182 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "resource deadlock avoided"},
++	{46, "ENOLCK", "no locks available"},
++	{50, "EBADE", "invalid exchange"},
++	{51, "EBADR", "invalid request descriptor"},
++	{52, "EXFULL", "exchange full"},
++	{53, "ENOANO", "no anode"},
++	{54, "EBADRQC", "invalid request code"},
++	{55, "EBADSLT", "invalid slot"},
++	{56, "EDEADLOCK", "file locking deadlock error"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EMULTIHOP", "multihop attempted"},
++	{77, "EBADMSG", "bad message"},
++	{78, "ENAMETOOLONG", "file name too long"},
++	{79, "EOVERFLOW", "value too large for defined data type"},
++	{80, "ENOTUNIQ", "name not unique on network"},
++	{81, "EBADFD", "file descriptor in bad state"},
++	{82, "EREMCHG", "remote address changed"},
++	{83, "ELIBACC", "can not access a needed shared library"},
++	{84, "ELIBBAD", "accessing a corrupted shared library"},
++	{85, "ELIBSCN", ".lib section in a.out corrupted"},
++	{86, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{87, "ELIBEXEC", "cannot exec a shared library directly"},
++	{88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{89, "ENOSYS", "function not implemented"},
++	{90, "ELOOP", "too many levels of symbolic links"},
++	{91, "ERESTART", "interrupted system call should be restarted"},
++	{92, "ESTRPIPE", "streams pipe error"},
++	{93, "ENOTEMPTY", "directory not empty"},
++	{94, "EUSERS", "too many users"},
++	{95, "ENOTSOCK", "socket operation on non-socket"},
++	{96, "EDESTADDRREQ", "destination address required"},
++	{97, "EMSGSIZE", "message too long"},
++	{98, "EPROTOTYPE", "protocol wrong type for socket"},
++	{99, "ENOPROTOOPT", "protocol not available"},
++	{120, "EPROTONOSUPPORT", "protocol not supported"},
++	{121, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{122, "ENOTSUP", "operation not supported"},
++	{123, "EPFNOSUPPORT", "protocol family not supported"},
++	{124, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{125, "EADDRINUSE", "address already in use"},
++	{126, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{127, "ENETDOWN", "network is down"},
++	{128, "ENETUNREACH", "network is unreachable"},
++	{129, "ENETRESET", "network dropped connection on reset"},
++	{130, "ECONNABORTED", "software caused connection abort"},
++	{131, "ECONNRESET", "connection reset by peer"},
++	{132, "ENOBUFS", "no buffer space available"},
++	{133, "EISCONN", "transport endpoint is already connected"},
++	{134, "ENOTCONN", "transport endpoint is not connected"},
++	{135, "EUCLEAN", "structure needs cleaning"},
++	{137, "ENOTNAM", "not a XENIX named type file"},
++	{138, "ENAVAIL", "no XENIX semaphores available"},
++	{139, "EISNAM", "is a named type file"},
++	{140, "EREMOTEIO", "remote I/O error"},
++	{141, "EINIT", "unknown error 141"},
++	{142, "EREMDEV", "unknown error 142"},
++	{143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{144, "ETOOMANYREFS", "too many references: cannot splice"},
++	{145, "ETIMEDOUT", "connection timed out"},
++	{146, "ECONNREFUSED", "connection refused"},
++	{147, "EHOSTDOWN", "host is down"},
++	{148, "EHOSTUNREACH", "no route to host"},
++	{149, "EALREADY", "operation already in progress"},
++	{150, "EINPROGRESS", "operation now in progress"},
++	{151, "ESTALE", "stale file handle"},
++	{158, "ECANCELED", "operation canceled"},
++	{159, "ENOMEDIUM", "no medium found"},
++	{160, "EMEDIUMTYPE", "wrong medium type"},
++	{161, "ENOKEY", "required key not available"},
++	{162, "EKEYEXPIRED", "key has expired"},
++	{163, "EKEYREVOKED", "key has been revoked"},
++	{164, "EKEYREJECTED", "key was rejected by service"},
++	{165, "EOWNERDEAD", "owner died"},
++	{166, "ENOTRECOVERABLE", "state not recoverable"},
++	{167, "ERFKILL", "operation not possible due to RF-kill"},
++	{168, "EHWPOISON", "memory page has hardware error"},
++	{1133, "EDQUOT", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGUSR1", "user defined signal 1"},
++	{17, "SIGUSR2", "user defined signal 2"},
++	{18, "SIGCHLD", "child exited"},
++	{19, "SIGPWR", "power failure"},
++	{20, "SIGWINCH", "window changed"},
++	{21, "SIGURG", "urgent I/O condition"},
++	{22, "SIGIO", "I/O possible"},
++	{23, "SIGSTOP", "stopped (signal)"},
++	{24, "SIGTSTP", "stopped"},
++	{25, "SIGCONT", "continued"},
++	{26, "SIGTTIN", "stopped (tty input)"},
++	{27, "SIGTTOU", "stopped (tty output)"},
++	{28, "SIGVTALRM", "virtual timer expired"},
++	{29, "SIGPROF", "profiling timer expired"},
++	{30, "SIGXCPU", "CPU time limit exceeded"},
++	{31, "SIGXFSZ", "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
+index 44191b0c..2dfe6bba 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
+@@ -3,7 +3,7 @@
+ 
+ // +build mipsle,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1873 +11,489 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x40041270
+-	BLKBSZSET                            = 0x80041271
+-	BLKFLSBUF                            = 0x20001261
+-	BLKFRAGET                            = 0x20001265
+-	BLKFRASET                            = 0x20001264
+-	BLKGETSIZE                           = 0x20001260
+-	BLKGETSIZE64                         = 0x40041272
+-	BLKPBSZGET                           = 0x2000127b
+-	BLKRAGET                             = 0x20001263
+-	BLKRASET                             = 0x20001262
+-	BLKROGET                             = 0x2000125e
+-	BLKROSET                             = 0x2000125d
+-	BLKRRPART                            = 0x2000125f
+-	BLKSECTGET                           = 0x20001267
+-	BLKSECTSET                           = 0x20001266
+-	BLKSSZGET                            = 0x20001268
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x80
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x2000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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
+-	PERF_EVENT_IOC_DISABLE               = 0x20002401
+-	PERF_EVENT_IOC_ENABLE                = 0x20002400
+-	PERF_EVENT_IOC_ID                    = 0x40042407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409
+-	PERF_EVENT_IOC_PERIOD                = 0x80082404
+-	PERF_EVENT_IOC_REFRESH               = 0x20002402
+-	PERF_EVENT_IOC_RESET                 = 0x20002403
+-	PERF_EVENT_IOC_SET_BPF               = 0x80042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x80042406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x20002405
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x9
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x5
+-	RLIMIT_NPROC                         = 0x8
+-	RLIMIT_RSS                           = 0x7
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	SHUT_RD                              = 0x0
+-	SHUT_RDWR                            = 0x2
+-	SHUT_WR                              = 0x1
+-	SIOCADDDLCI                          = 0x8980
+-	SIOCADDMULTI                         = 0x8931
+-	SIOCADDRT                            = 0x890b
+-	SIOCATMARK                           = 0x40047307
+-	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                            = 0x40047309
+-	SIOCGRARP                            = 0x8961
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x467f
+-	SIOCOUTQ                             = 0x7472
+-	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                            = 0x80047308
+-	SIOCSRARP                            = 0x8962
+-	SIOCWANDEV                           = 0x894a
+-	SOCK_CLOEXEC                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x1
+-	SOCK_IOC_TYPE                        = 0x89
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	VM_SOCKETS_INVALID_VERSION           = 0xffffffff
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x40041270
++	BLKBSZSET                        = 0x80041271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40041272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x80
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x2000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40046601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
++	F_GETLK                          = 0x21
++	F_GETLK64                        = 0x21
++	F_GETOWN                         = 0x17
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x22
++	F_SETLK64                        = 0x22
++	F_SETLKW                         = 0x23
++	F_SETLKW64                       = 0x23
++	F_SETOWN                         = 0x18
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x100
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x80
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x800
++	MAP_ANONYMOUS                    = 0x800
++	MAP_DENYWRITE                    = 0x2000
++	MAP_EXECUTABLE                   = 0x4000
++	MAP_GROWSDOWN                    = 0x1000
++	MAP_HUGETLB                      = 0x80000
++	MAP_LOCKED                       = 0x8000
++	MAP_NONBLOCK                     = 0x20000
++	MAP_NORESERVE                    = 0x400
++	MAP_POPULATE                     = 0x10000
++	MAP_RENAME                       = 0x800
++	MAP_STACK                        = 0x40000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x20
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x4010
++	O_SYNC                           = 0x4010
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40042407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc004240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80042406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4008743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80087446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x800c744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80087447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PR_SET_PTRACER_ANY               = 0xffffffff
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GET_THREAD_AREA           = 0x19
++	PTRACE_GET_THREAD_AREA_3264      = 0xc4
++	PTRACE_GET_WATCH_REGS            = 0xd0
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_PEEKDATA_3264             = 0xc1
++	PTRACE_PEEKTEXT_3264             = 0xc0
++	PTRACE_POKEDATA_3264             = 0xc3
++	PTRACE_POKETEXT_3264             = 0xc2
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SET_THREAD_AREA           = 0x1a
++	PTRACE_SET_WATCH_REGS            = 0xd1
++	RLIMIT_AS                        = 0x6
++	RLIMIT_MEMLOCK                   = 0x9
++	RLIMIT_NOFILE                    = 0x5
++	RLIMIT_NPROC                     = 0x8
++	RLIMIT_RSS                       = 0x7
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4004700d
++	RTC_EPOCH_SET                    = 0x8004700e
++	RTC_IRQP_READ                    = 0x4004700b
++	RTC_IRQP_SET                     = 0x8004700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x401c7011
++	RTC_PLL_SET                      = 0x801c7012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x80
++	SIOCATMARK                       = 0x40047307
++	SIOCGPGRP                        = 0x40047309
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
++	SIOCINQ                          = 0x467f
++	SIOCOUTQ                         = 0x7472
++	SIOCSPGRP                        = 0x80047308
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x1
++	SOCK_NONBLOCK                    = 0x80
++	SOCK_STREAM                      = 0x2
++	SOL_SOCKET                       = 0xffff
++	SO_ACCEPTCONN                    = 0x1009
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x20
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x1029
++	SO_DONTROUTE                     = 0x10
++	SO_ERROR                         = 0x1007
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x8
++	SO_LINGER                        = 0x80
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0x100
++	SO_PASSCRED                      = 0x11
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x12
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1e
++	SO_PROTOCOL                      = 0x1028
++	SO_RCVBUF                        = 0x1002
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x1004
++	SO_RCVTIMEO                      = 0x1006
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x1005
++	SO_STYLE                         = 0x1008
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x1008
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x5407
++	TCGETA                           = 0x5401
++	TCGETS                           = 0x540d
++	TCGETS2                          = 0x4030542a
++	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
++	TIOCGISO7816                     = 0x40285442
++	TIOCGLCKTRMIOS                   = 0x548b
++	TIOCGLTC                         = 0x7474
++	TIOCGPGRP                        = 0x40047477
++	TIOCGPKT                         = 0x40045438
++	TIOCGPTLCK                       = 0x40045439
++	TIOCGPTN                         = 0x40045430
++	TIOCGPTPEER                      = 0x20005441
++	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_RI                         = 0x200
++	TIOCM_RNG                        = 0x200
++	TIOCM_SR                         = 0x20
++	TIOCM_ST                         = 0x10
++	TIOCNOTTY                        = 0x5471
++	TIOCNXCL                         = 0x740e
++	TIOCOUTQ                         = 0x7472
++	TIOCPKT                          = 0x5470
++	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
++	TIOCSISO7816                     = 0xc0285443
++	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
++	TUNGETDEVNETNS                   = 0x200054e3
++	TUNGETFEATURES                   = 0x400454cf
++	TUNGETFILTER                     = 0x400854db
++	TUNGETIFF                        = 0x400454d2
++	TUNGETSNDBUF                     = 0x400454d3
++	TUNGETVNETBE                     = 0x400454df
++	TUNGETVNETHDRSZ                  = 0x400454d7
++	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
++	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
++	TUNSETGROUP                      = 0x800454ce
++	TUNSETIFF                        = 0x800454ca
++	TUNSETIFINDEX                    = 0x800454da
++	TUNSETLINK                       = 0x800454cd
++	TUNSETNOCSUM                     = 0x800454c8
++	TUNSETOFFLOAD                    = 0x800454d0
++	TUNSETOWNER                      = 0x800454cc
++	TUNSETPERSIST                    = 0x800454cb
++	TUNSETQUEUE                      = 0x800454d9
++	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
++	TUNSETTXFILTER                   = 0x800454d1
++	TUNSETVNETBE                     = 0x800454de
++	TUNSETVNETHDRSZ                  = 0x800454d8
++	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x10
++	VEOL                             = 0x11
++	VEOL2                            = 0x6
++	VMIN                             = 0x4
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VSWTCH                           = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
++	WORDSIZE                         = 0x20
++	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)
+@@ -1886,12 +502,8 @@ const (
+ 	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)
+@@ -1899,11 +511,7 @@ const (
+ 	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)
+@@ -1920,8 +528,6 @@ const (
+ 	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)
+@@ -1929,100 +535,68 @@ const (
+ 	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)
+@@ -2036,174 +610,182 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "resource deadlock avoided"},
++	{46, "ENOLCK", "no locks available"},
++	{50, "EBADE", "invalid exchange"},
++	{51, "EBADR", "invalid request descriptor"},
++	{52, "EXFULL", "exchange full"},
++	{53, "ENOANO", "no anode"},
++	{54, "EBADRQC", "invalid request code"},
++	{55, "EBADSLT", "invalid slot"},
++	{56, "EDEADLOCK", "file locking deadlock error"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EMULTIHOP", "multihop attempted"},
++	{77, "EBADMSG", "bad message"},
++	{78, "ENAMETOOLONG", "file name too long"},
++	{79, "EOVERFLOW", "value too large for defined data type"},
++	{80, "ENOTUNIQ", "name not unique on network"},
++	{81, "EBADFD", "file descriptor in bad state"},
++	{82, "EREMCHG", "remote address changed"},
++	{83, "ELIBACC", "can not access a needed shared library"},
++	{84, "ELIBBAD", "accessing a corrupted shared library"},
++	{85, "ELIBSCN", ".lib section in a.out corrupted"},
++	{86, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{87, "ELIBEXEC", "cannot exec a shared library directly"},
++	{88, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{89, "ENOSYS", "function not implemented"},
++	{90, "ELOOP", "too many levels of symbolic links"},
++	{91, "ERESTART", "interrupted system call should be restarted"},
++	{92, "ESTRPIPE", "streams pipe error"},
++	{93, "ENOTEMPTY", "directory not empty"},
++	{94, "EUSERS", "too many users"},
++	{95, "ENOTSOCK", "socket operation on non-socket"},
++	{96, "EDESTADDRREQ", "destination address required"},
++	{97, "EMSGSIZE", "message too long"},
++	{98, "EPROTOTYPE", "protocol wrong type for socket"},
++	{99, "ENOPROTOOPT", "protocol not available"},
++	{120, "EPROTONOSUPPORT", "protocol not supported"},
++	{121, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{122, "ENOTSUP", "operation not supported"},
++	{123, "EPFNOSUPPORT", "protocol family not supported"},
++	{124, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{125, "EADDRINUSE", "address already in use"},
++	{126, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{127, "ENETDOWN", "network is down"},
++	{128, "ENETUNREACH", "network is unreachable"},
++	{129, "ENETRESET", "network dropped connection on reset"},
++	{130, "ECONNABORTED", "software caused connection abort"},
++	{131, "ECONNRESET", "connection reset by peer"},
++	{132, "ENOBUFS", "no buffer space available"},
++	{133, "EISCONN", "transport endpoint is already connected"},
++	{134, "ENOTCONN", "transport endpoint is not connected"},
++	{135, "EUCLEAN", "structure needs cleaning"},
++	{137, "ENOTNAM", "not a XENIX named type file"},
++	{138, "ENAVAIL", "no XENIX semaphores available"},
++	{139, "EISNAM", "is a named type file"},
++	{140, "EREMOTEIO", "remote I/O error"},
++	{141, "EINIT", "unknown error 141"},
++	{142, "EREMDEV", "unknown error 142"},
++	{143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{144, "ETOOMANYREFS", "too many references: cannot splice"},
++	{145, "ETIMEDOUT", "connection timed out"},
++	{146, "ECONNREFUSED", "connection refused"},
++	{147, "EHOSTDOWN", "host is down"},
++	{148, "EHOSTUNREACH", "no route to host"},
++	{149, "EALREADY", "operation already in progress"},
++	{150, "EINPROGRESS", "operation now in progress"},
++	{151, "ESTALE", "stale file handle"},
++	{158, "ECANCELED", "operation canceled"},
++	{159, "ENOMEDIUM", "no medium found"},
++	{160, "EMEDIUMTYPE", "wrong medium type"},
++	{161, "ENOKEY", "required key not available"},
++	{162, "EKEYEXPIRED", "key has expired"},
++	{163, "EKEYREVOKED", "key has been revoked"},
++	{164, "EKEYREJECTED", "key was rejected by service"},
++	{165, "EOWNERDEAD", "owner died"},
++	{166, "ENOTRECOVERABLE", "state not recoverable"},
++	{167, "ERFKILL", "operation not possible due to RF-kill"},
++	{168, "EHWPOISON", "memory page has hardware error"},
++	{1133, "EDQUOT", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGUSR1", "user defined signal 1"},
++	{17, "SIGUSR2", "user defined signal 2"},
++	{18, "SIGCHLD", "child exited"},
++	{19, "SIGPWR", "power failure"},
++	{20, "SIGWINCH", "window changed"},
++	{21, "SIGURG", "urgent I/O condition"},
++	{22, "SIGIO", "I/O possible"},
++	{23, "SIGSTOP", "stopped (signal)"},
++	{24, "SIGTSTP", "stopped"},
++	{25, "SIGCONT", "continued"},
++	{26, "SIGTTIN", "stopped (tty input)"},
++	{27, "SIGTTOU", "stopped (tty output)"},
++	{28, "SIGVTALRM", "virtual timer expired"},
++	{29, "SIGPROF", "profiling timer expired"},
++	{30, "SIGXCPU", "CPU time limit exceeded"},
++	{31, "SIGXFSZ", "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
+index 6772a59b..51858667 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build ppc64,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1930 +11,549 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x40081270
+-	BLKBSZSET                            = 0x80081271
+-	BLKFLSBUF                            = 0x20001261
+-	BLKFRAGET                            = 0x20001265
+-	BLKFRASET                            = 0x20001264
+-	BLKGETSIZE                           = 0x20001260
+-	BLKGETSIZE64                         = 0x40081272
+-	BLKPBSZGET                           = 0x2000127b
+-	BLKRAGET                             = 0x20001263
+-	BLKRASET                             = 0x20001262
+-	BLKROGET                             = 0x2000125e
+-	BLKROSET                             = 0x2000125d
+-	BLKRRPART                            = 0x2000125f
+-	BLKSECTGET                           = 0x20001267
+-	BLKSECTSET                           = 0x20001266
+-	BLKSSZGET                            = 0x20001268
+-	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_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                                  = 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_RAW_FILTER_MAX                   = 0x200
+-	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_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                                  = 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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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                              = 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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x4000
+-	FFDLY                                = 0x4000
+-	FLUSHO                               = 0x800000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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_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                                 = 0x80
+-	ISTRIP                               = 0x20
+-	IUCLC                                = 0x1000
+-	IUTF8                                = 0x4000
+-	IXANY                                = 0x800
+-	IXOFF                                = 0x400
+-	IXON                                 = 0x200
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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                        = 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
+-	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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                            = 0x404000
+-	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                               = 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
+-	PERF_EVENT_IOC_DISABLE               = 0x20002401
+-	PERF_EVENT_IOC_ENABLE                = 0x20002400
+-	PERF_EVENT_IOC_ID                    = 0x40082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409
+-	PERF_EVENT_IOC_PERIOD                = 0x80082404
+-	PERF_EVENT_IOC_REFRESH               = 0x20002402
+-	PERF_EVENT_IOC_RESET                 = 0x20002403
+-	PERF_EVENT_IOC_SET_BPF               = 0x80042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x80082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x20002405
+-	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_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_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                        = 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_SECCOMP_GET_FILTER            = 0x420c
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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                          = 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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	TCFLSH                               = 0x2000741f
+-	TCGETA                               = 0x40147417
+-	TCGETS                               = 0x402c7413
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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                               = 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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	VM_SOCKETS_INVALID_VERSION           = 0xffffffff
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4000
+-	XTABS                                = 0xc00
++	B1000000                         = 0x17
++	B115200                          = 0x11
++	B1152000                         = 0x18
++	B1500000                         = 0x19
++	B2000000                         = 0x1a
++	B230400                          = 0x12
++	B2500000                         = 0x1b
++	B3000000                         = 0x1c
++	B3500000                         = 0x1d
++	B4000000                         = 0x1e
++	B460800                          = 0x13
++	B500000                          = 0x14
++	B57600                           = 0x10
++	B576000                          = 0x15
++	B921600                          = 0x16
++	BLKBSZGET                        = 0x40081270
++	BLKBSZSET                        = 0x80081271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40081272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
++	BOTHER                           = 0x1f
++	BS1                              = 0x8000
++	BSDLY                            = 0x8000
++	CBAUD                            = 0xff
++	CBAUDEX                          = 0x0
++	CIBAUD                           = 0xff0000
++	CLOCAL                           = 0x8000
++	CR1                              = 0x1000
++	CR2                              = 0x2000
++	CR3                              = 0x3000
++	CRDLY                            = 0x3000
++	CREAD                            = 0x800
++	CS6                              = 0x100
++	CS7                              = 0x200
++	CS8                              = 0x300
++	CSIZE                            = 0x300
++	CSTOPB                           = 0x400
++	ECHOCTL                          = 0x40
++	ECHOE                            = 0x2
++	ECHOK                            = 0x4
++	ECHOKE                           = 0x1
++	ECHONL                           = 0x10
++	ECHOPRT                          = 0x20
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000000
++	FF1                              = 0x4000
++	FFDLY                            = 0x4000
++	FLUSHO                           = 0x800000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
++	F_GETLK                          = 0x5
++	F_GETLK64                        = 0xc
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0xd
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0xe
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x4000
++	ICANON                           = 0x100
++	IEXTEN                           = 0x400
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
++	ISIG                             = 0x80
++	IUCLC                            = 0x1000
++	IXOFF                            = 0x400
++	IXON                             = 0x200
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x80
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x40
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x2000
++	MCL_FUTURE                       = 0x4000
++	MCL_ONFAULT                      = 0x8000
++	NFDBITS                          = 0x40
++	NL2                              = 0x200
++	NL3                              = 0x300
++	NLDLY                            = 0x300
++	NOFLSH                           = 0x80000000
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
++	OLCUC                            = 0x4
++	ONLCR                            = 0x2
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x404000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x1000
++	PARODD                           = 0x2000
++	PENDIN                           = 0x20000000
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4010743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80107446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x8010744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80107447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PROT_SAO                         = 0x10
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_GETEVRREGS                = 0x14
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GETREGS64                 = 0x16
++	PTRACE_GETVRREGS                 = 0x12
++	PTRACE_GETVSRREGS                = 0x1b
++	PTRACE_GET_DEBUGREG              = 0x19
++	PTRACE_SETEVRREGS                = 0x15
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SETREGS64                 = 0x17
++	PTRACE_SETVRREGS                 = 0x13
++	PTRACE_SETVSRREGS                = 0x1c
++	PTRACE_SET_DEBUGREG              = 0x1a
++	PTRACE_SINGLEBLOCK               = 0x100
++	PTRACE_SYSEMU                    = 0x1d
++	PTRACE_SYSEMU_SINGLESTEP         = 0x1e
++	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_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4008700d
++	RTC_EPOCH_SET                    = 0x8008700e
++	RTC_IRQP_READ                    = 0x4008700b
++	RTC_IRQP_SET                     = 0x8008700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x40207011
++	RTC_PLL_SET                      = 0x80207012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
++	SIOCINQ                          = 0x4004667f
++	SIOCOUTQ                         = 0x40047473
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x14
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x15
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x10
++	SO_RCVTIMEO                      = 0x12
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x13
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x400
++	TAB2                             = 0x800
++	TAB3                             = 0xc00
++	TABDLY                           = 0xc00
++	TCFLSH                           = 0x2000741f
++	TCGETA                           = 0x40147417
++	TCGETS                           = 0x402c7413
++	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
++	TIOCGISO7816                     = 0x40285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGLTC                         = 0x40067474
++	TIOCGPGRP                        = 0x40047477
++	TIOCGPKT                         = 0x40045438
++	TIOCGPTLCK                       = 0x40045439
++	TIOCGPTN                         = 0x40045430
++	TIOCGPTPEER                      = 0x20005441
++	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_LOOP                       = 0x8000
++	TIOCM_OUT1                       = 0x2000
++	TIOCM_OUT2                       = 0x4000
++	TIOCM_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x40047473
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	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
++	TUNGETDEVNETNS                   = 0x200054e3
++	TUNGETFEATURES                   = 0x400454cf
++	TUNGETFILTER                     = 0x401054db
++	TUNGETIFF                        = 0x400454d2
++	TUNGETSNDBUF                     = 0x400454d3
++	TUNGETVNETBE                     = 0x400454df
++	TUNGETVNETHDRSZ                  = 0x400454d7
++	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
++	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
++	TUNSETGROUP                      = 0x800454ce
++	TUNSETIFF                        = 0x800454ca
++	TUNSETIFINDEX                    = 0x800454da
++	TUNSETLINK                       = 0x800454cd
++	TUNSETNOCSUM                     = 0x800454c8
++	TUNSETOFFLOAD                    = 0x800454d0
++	TUNSETOWNER                      = 0x800454cc
++	TUNSETPERSIST                    = 0x800454cb
++	TUNSETQUEUE                      = 0x800454d9
++	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
++	TUNSETTXFILTER                   = 0x800454d1
++	TUNSETVNETBE                     = 0x800454de
++	TUNSETVNETHDRSZ                  = 0x800454d8
++	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
++	VDISCARD                         = 0x10
++	VEOF                             = 0x4
++	VEOL                             = 0x6
++	VEOL2                            = 0x8
++	VMIN                             = 0x5
++	VREPRINT                         = 0xb
++	VSTART                           = 0xd
++	VSTOP                            = 0xe
++	VSUSP                            = 0xc
++	VSWTC                            = 0x9
++	VT1                              = 0x10000
++	VTDLY                            = 0x10000
++	VTIME                            = 0x7
++	VWERASE                          = 0xa
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1943,23 +562,15 @@ const (
+ 	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)
+@@ -1976,8 +587,6 @@ const (
+ 	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)
+@@ -1985,103 +594,70 @@ const (
+ 	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)
+@@ -2092,172 +668,180 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{58, "EDEADLOCK", "file locking deadlock error"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index ad29c3d3..4231b20b 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
+@@ -3,7 +3,7 @@
+ 
+ // +build ppc64le,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
+ 
+ package unix
+@@ -11,1930 +11,549 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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                            = 0x40081270
+-	BLKBSZSET                            = 0x80081271
+-	BLKFLSBUF                            = 0x20001261
+-	BLKFRAGET                            = 0x20001265
+-	BLKFRASET                            = 0x20001264
+-	BLKGETSIZE                           = 0x20001260
+-	BLKGETSIZE64                         = 0x40081272
+-	BLKPBSZGET                           = 0x2000127b
+-	BLKRAGET                             = 0x20001263
+-	BLKRASET                             = 0x20001262
+-	BLKROGET                             = 0x2000125e
+-	BLKROSET                             = 0x2000125d
+-	BLKRRPART                            = 0x2000125f
+-	BLKSECTGET                           = 0x20001267
+-	BLKSECTSET                           = 0x20001266
+-	BLKSSZGET                            = 0x20001268
+-	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_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                                  = 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_RAW_FILTER_MAX                   = 0x200
+-	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_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                                  = 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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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                              = 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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x4000
+-	FFDLY                                = 0x4000
+-	FLUSHO                               = 0x800000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x800c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x80106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x400c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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_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                                 = 0x80
+-	ISTRIP                               = 0x20
+-	IUCLC                                = 0x1000
+-	IUTF8                                = 0x4000
+-	IXANY                                = 0x800
+-	IXOFF                                = 0x400
+-	IXON                                 = 0x200
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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                        = 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
+-	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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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                            = 0x404000
+-	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                               = 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
+-	PERF_EVENT_IOC_DISABLE               = 0x20002401
+-	PERF_EVENT_IOC_ENABLE                = 0x20002400
+-	PERF_EVENT_IOC_ID                    = 0x40082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x80042409
+-	PERF_EVENT_IOC_PERIOD                = 0x80082404
+-	PERF_EVENT_IOC_REFRESH               = 0x20002402
+-	PERF_EVENT_IOC_RESET                 = 0x20002403
+-	PERF_EVENT_IOC_SET_BPF               = 0x80042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x80082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x20002405
+-	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_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_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                        = 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_SECCOMP_GET_FILTER            = 0x420c
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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                          = 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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	TCFLSH                               = 0x2000741f
+-	TCGETA                               = 0x40147417
+-	TCGETS                               = 0x402c7413
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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                               = 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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	VM_SOCKETS_INVALID_VERSION           = 0xffffffff
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4000
+-	XTABS                                = 0xc00
++	B1000000                         = 0x17
++	B115200                          = 0x11
++	B1152000                         = 0x18
++	B1500000                         = 0x19
++	B2000000                         = 0x1a
++	B230400                          = 0x12
++	B2500000                         = 0x1b
++	B3000000                         = 0x1c
++	B3500000                         = 0x1d
++	B4000000                         = 0x1e
++	B460800                          = 0x13
++	B500000                          = 0x14
++	B57600                           = 0x10
++	B576000                          = 0x15
++	B921600                          = 0x16
++	BLKBSZGET                        = 0x40081270
++	BLKBSZSET                        = 0x80081271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40081272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
++	BOTHER                           = 0x1f
++	BS1                              = 0x8000
++	BSDLY                            = 0x8000
++	CBAUD                            = 0xff
++	CBAUDEX                          = 0x0
++	CIBAUD                           = 0xff0000
++	CLOCAL                           = 0x8000
++	CR1                              = 0x1000
++	CR2                              = 0x2000
++	CR3                              = 0x3000
++	CRDLY                            = 0x3000
++	CREAD                            = 0x800
++	CS6                              = 0x100
++	CS7                              = 0x200
++	CS8                              = 0x300
++	CSIZE                            = 0x300
++	CSTOPB                           = 0x400
++	ECHOCTL                          = 0x40
++	ECHOE                            = 0x2
++	ECHOK                            = 0x4
++	ECHOKE                           = 0x1
++	ECHONL                           = 0x10
++	ECHOPRT                          = 0x20
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000000
++	FF1                              = 0x4000
++	FFDLY                            = 0x4000
++	FLUSHO                           = 0x800000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
++	F_GETLK                          = 0x5
++	F_GETLK64                        = 0xc
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0xd
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0xe
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x4000
++	ICANON                           = 0x100
++	IEXTEN                           = 0x400
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
++	ISIG                             = 0x80
++	IUCLC                            = 0x1000
++	IXOFF                            = 0x400
++	IXON                             = 0x200
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x80
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x40
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x2000
++	MCL_FUTURE                       = 0x4000
++	MCL_ONFAULT                      = 0x8000
++	NFDBITS                          = 0x40
++	NL2                              = 0x200
++	NL3                              = 0x300
++	NLDLY                            = 0x300
++	NOFLSH                           = 0x80000000
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
++	OLCUC                            = 0x4
++	ONLCR                            = 0x2
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x404000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x1000
++	PARODD                           = 0x2000
++	PENDIN                           = 0x20000000
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4010743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80107446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x8010744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80107447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PROT_SAO                         = 0x10
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_GETEVRREGS                = 0x14
++	PTRACE_GETFPREGS                 = 0xe
++	PTRACE_GETREGS64                 = 0x16
++	PTRACE_GETVRREGS                 = 0x12
++	PTRACE_GETVSRREGS                = 0x1b
++	PTRACE_GET_DEBUGREG              = 0x19
++	PTRACE_SETEVRREGS                = 0x15
++	PTRACE_SETFPREGS                 = 0xf
++	PTRACE_SETREGS64                 = 0x17
++	PTRACE_SETVRREGS                 = 0x13
++	PTRACE_SETVSRREGS                = 0x1c
++	PTRACE_SET_DEBUGREG              = 0x1a
++	PTRACE_SINGLEBLOCK               = 0x100
++	PTRACE_SYSEMU                    = 0x1d
++	PTRACE_SYSEMU_SINGLESTEP         = 0x1e
++	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_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4008700d
++	RTC_EPOCH_SET                    = 0x8008700e
++	RTC_IRQP_READ                    = 0x4008700b
++	RTC_IRQP_SET                     = 0x8008700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x40207011
++	RTC_PLL_SET                      = 0x80207012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
++	SIOCINQ                          = 0x4004667f
++	SIOCOUTQ                         = 0x40047473
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x14
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x15
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x10
++	SO_RCVTIMEO                      = 0x12
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x13
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x400
++	TAB2                             = 0x800
++	TAB3                             = 0xc00
++	TABDLY                           = 0xc00
++	TCFLSH                           = 0x2000741f
++	TCGETA                           = 0x40147417
++	TCGETS                           = 0x402c7413
++	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
++	TIOCGISO7816                     = 0x40285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGLTC                         = 0x40067474
++	TIOCGPGRP                        = 0x40047477
++	TIOCGPKT                         = 0x40045438
++	TIOCGPTLCK                       = 0x40045439
++	TIOCGPTN                         = 0x40045430
++	TIOCGPTPEER                      = 0x20005441
++	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_LOOP                       = 0x8000
++	TIOCM_OUT1                       = 0x2000
++	TIOCM_OUT2                       = 0x4000
++	TIOCM_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x40047473
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	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
++	TUNGETDEVNETNS                   = 0x200054e3
++	TUNGETFEATURES                   = 0x400454cf
++	TUNGETFILTER                     = 0x401054db
++	TUNGETIFF                        = 0x400454d2
++	TUNGETSNDBUF                     = 0x400454d3
++	TUNGETVNETBE                     = 0x400454df
++	TUNGETVNETHDRSZ                  = 0x400454d7
++	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
++	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
++	TUNSETGROUP                      = 0x800454ce
++	TUNSETIFF                        = 0x800454ca
++	TUNSETIFINDEX                    = 0x800454da
++	TUNSETLINK                       = 0x800454cd
++	TUNSETNOCSUM                     = 0x800454c8
++	TUNSETOFFLOAD                    = 0x800454d0
++	TUNSETOWNER                      = 0x800454cc
++	TUNSETPERSIST                    = 0x800454cb
++	TUNSETQUEUE                      = 0x800454d9
++	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
++	TUNSETTXFILTER                   = 0x800454d1
++	TUNSETVNETBE                     = 0x800454de
++	TUNSETVNETHDRSZ                  = 0x800454d8
++	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
++	VDISCARD                         = 0x10
++	VEOF                             = 0x4
++	VEOL                             = 0x6
++	VEOL2                            = 0x8
++	VMIN                             = 0x5
++	VREPRINT                         = 0xb
++	VSTART                           = 0xd
++	VSTOP                            = 0xe
++	VSUSP                            = 0xc
++	VSWTC                            = 0x9
++	VT1                              = 0x10000
++	VTDLY                            = 0x10000
++	VTIME                            = 0x7
++	VWERASE                          = 0xa
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1943,23 +562,15 @@ const (
+ 	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)
+@@ -1976,8 +587,6 @@ const (
+ 	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)
+@@ -1985,103 +594,70 @@ const (
+ 	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)
+@@ -2092,172 +668,180 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{58, "EDEADLOCK", "file locking deadlock error"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "bad system call"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+new file mode 100644
+index 00000000..6a0b2d29
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
+@@ -0,0 +1,771 @@
++// mkerrors.sh -Wall -Werror -static -I/tmp/include
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build riscv64,linux
++
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
++
++package unix
++
++import "syscall"
++
++const (
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x80081270
++	BLKBSZSET                        = 0x40081271
++	BLKFLSBUF                        = 0x1261
++	BLKFRAGET                        = 0x1265
++	BLKFRASET                        = 0x1264
++	BLKGETSIZE                       = 0x1260
++	BLKGETSIZE64                     = 0x80081272
++	BLKPBSZGET                       = 0x127b
++	BLKRAGET                         = 0x1263
++	BLKRASET                         = 0x1262
++	BLKROGET                         = 0x125e
++	BLKROSET                         = 0x125d
++	BLKRRPART                        = 0x125f
++	BLKSECTGET                       = 0x1267
++	BLKSECTSET                       = 0x1266
++	BLKSSZGET                        = 0x1268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x1000
++	FS_IOC_ENABLE_VERITY             = 0x40806685
++	FS_IOC_GETFLAGS                  = 0x80086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
++	F_GETLK                          = 0x5
++	F_GETLK64                        = 0x5
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0x6
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0x7
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x8000
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x2000
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x4000
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x40
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0xb703
++	NS_GET_OWNER_UID                 = 0xb704
++	NS_GET_PARENT                    = 0xb702
++	NS_GET_USERNS                    = 0xb701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x2401
++	PERF_EVENT_IOC_ENABLE            = 0x2400
++	PERF_EVENT_IOC_ID                = 0x80082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
++	PERF_EVENT_IOC_PERIOD            = 0x40082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x2402
++	PERF_EVENT_IOC_RESET             = 0x2403
++	PERF_EVENT_IOC_SET_BPF           = 0x40042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x40082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
++	PPPIOCATTACH                     = 0x4004743d
++	PPPIOCATTCHAN                    = 0x40047438
++	PPPIOCCONNECT                    = 0x4004743a
++	PPPIOCDETACH                     = 0x4004743c
++	PPPIOCDISCONN                    = 0x7439
++	PPPIOCGASYNCMAP                  = 0x80047458
++	PPPIOCGCHAN                      = 0x80047437
++	PPPIOCGDEBUG                     = 0x80047441
++	PPPIOCGFLAGS                     = 0x8004745a
++	PPPIOCGIDLE                      = 0x8010743f
++	PPPIOCGIDLE32                    = 0x8008743f
++	PPPIOCGIDLE64                    = 0x8010743f
++	PPPIOCGL2TPSTATS                 = 0x80487436
++	PPPIOCGMRU                       = 0x80047453
++	PPPIOCGRASYNCMAP                 = 0x80047455
++	PPPIOCGUNIT                      = 0x80047456
++	PPPIOCGXASYNCMAP                 = 0x80207450
++	PPPIOCSACTIVE                    = 0x40107446
++	PPPIOCSASYNCMAP                  = 0x40047457
++	PPPIOCSCOMPRESS                  = 0x4010744d
++	PPPIOCSDEBUG                     = 0x40047440
++	PPPIOCSFLAGS                     = 0x40047459
++	PPPIOCSMAXCID                    = 0x40047451
++	PPPIOCSMRRU                      = 0x4004743b
++	PPPIOCSMRU                       = 0x40047452
++	PPPIOCSNPMODE                    = 0x4008744b
++	PPPIOCSPASS                      = 0x40107447
++	PPPIOCSRASYNCMAP                 = 0x40047454
++	PPPIOCSXASYNCMAP                 = 0x4020744f
++	PPPIOCXFERUNIT                   = 0x744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	RLIMIT_AS                        = 0x9
++	RLIMIT_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x40085203
++	RNDADDTOENTCNT                   = 0x40045201
++	RNDCLEARPOOL                     = 0x5206
++	RNDGETENTCNT                     = 0x80045200
++	RNDGETPOOL                       = 0x80085202
++	RNDRESEEDCRNG                    = 0x5207
++	RNDZAPENTCNT                     = 0x5204
++	RTC_AIE_OFF                      = 0x7002
++	RTC_AIE_ON                       = 0x7001
++	RTC_ALM_READ                     = 0x80247008
++	RTC_ALM_SET                      = 0x40247007
++	RTC_EPOCH_READ                   = 0x8008700d
++	RTC_EPOCH_SET                    = 0x4008700e
++	RTC_IRQP_READ                    = 0x8008700b
++	RTC_IRQP_SET                     = 0x4008700c
++	RTC_PIE_OFF                      = 0x7006
++	RTC_PIE_ON                       = 0x7005
++	RTC_PLL_GET                      = 0x80207011
++	RTC_PLL_SET                      = 0x40207012
++	RTC_RD_TIME                      = 0x80247009
++	RTC_SET_TIME                     = 0x4024700a
++	RTC_UIE_OFF                      = 0x7004
++	RTC_UIE_ON                       = 0x7003
++	RTC_VL_CLR                       = 0x7014
++	RTC_VL_READ                      = 0x80047013
++	RTC_WIE_OFF                      = 0x7010
++	RTC_WIE_ON                       = 0x700f
++	RTC_WKALM_RD                     = 0x80287010
++	RTC_WKALM_SET                    = 0x4028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x80108907
++	SIOCGSTAMP_NEW                   = 0x80108906
++	SIOCINQ                          = 0x541b
++	SIOCOUTQ                         = 0x5411
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x10
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x11
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x12
++	SO_RCVTIMEO                      = 0x14
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x15
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x540b
++	TCGETA                           = 0x5405
++	TCGETS                           = 0x5401
++	TCGETS2                          = 0x802c542a
++	TCGETX                           = 0x5432
++	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
++	TIOCGISO7816                     = 0x80285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGPGRP                        = 0x540f
++	TIOCGPKT                         = 0x80045438
++	TIOCGPTLCK                       = 0x80045439
++	TIOCGPTN                         = 0x80045430
++	TIOCGPTPEER                      = 0x5441
++	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_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x5411
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	TIOCSLCKTRMIOS                   = 0x5457
++	TIOCSPGRP                        = 0x5410
++	TIOCSPTLCK                       = 0x40045431
++	TIOCSRS485                       = 0x542f
++	TIOCSSERIAL                      = 0x541f
++	TIOCSSOFTCAR                     = 0x541a
++	TIOCSTI                          = 0x5412
++	TIOCSWINSZ                       = 0x5414
++	TIOCVHANGUP                      = 0x5437
++	TOSTOP                           = 0x100
++	TUNATTACHFILTER                  = 0x401054d5
++	TUNDETACHFILTER                  = 0x401054d6
++	TUNGETDEVNETNS                   = 0x54e3
++	TUNGETFEATURES                   = 0x800454cf
++	TUNGETFILTER                     = 0x801054db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETBE                     = 0x800454df
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNGETVNETLE                     = 0x800454dd
++	TUNSETCARRIER                    = 0x400454e2
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETFILTEREBPF                 = 0x800454e1
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	TUNSETLINK                       = 0x400454cd
++	TUNSETNOCSUM                     = 0x400454c8
++	TUNSETOFFLOAD                    = 0x400454d0
++	TUNSETOWNER                      = 0x400454cc
++	TUNSETPERSIST                    = 0x400454cb
++	TUNSETQUEUE                      = 0x400454d9
++	TUNSETSNDBUF                     = 0x400454d4
++	TUNSETSTEERINGEBPF               = 0x800454e0
++	TUNSETTXFILTER                   = 0x400454d1
++	TUNSETVNETBE                     = 0x400454de
++	TUNSETVNETHDRSZ                  = 0x400454d8
++	TUNSETVNETLE                     = 0x400454dc
++	UBI_IOCATT                       = 0x40186f40
++	UBI_IOCDET                       = 0x40046f41
++	UBI_IOCEBCH                      = 0x40044f02
++	UBI_IOCEBER                      = 0x40044f01
++	UBI_IOCEBISMAP                   = 0x80044f05
++	UBI_IOCEBMAP                     = 0x40084f03
++	UBI_IOCEBUNMAP                   = 0x40044f04
++	UBI_IOCMKVOL                     = 0x40986f00
++	UBI_IOCRMVOL                     = 0x40046f01
++	UBI_IOCRNVOL                     = 0x51106f03
++	UBI_IOCRPEB                      = 0x40046f04
++	UBI_IOCRSVOL                     = 0x400c6f02
++	UBI_IOCSETVOLPROP                = 0x40104f06
++	UBI_IOCSPEB                      = 0x40046f05
++	UBI_IOCVOLCRBLK                  = 0x40804f07
++	UBI_IOCVOLRMBLK                  = 0x4f08
++	UBI_IOCVOLUP                     = 0x40084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x4
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x80045702
++	WDIOC_GETPRETIMEOUT              = 0x80045709
++	WDIOC_GETSTATUS                  = 0x80045701
++	WDIOC_GETSUPPORT                 = 0x80285700
++	WDIOC_GETTEMP                    = 0x80045703
++	WDIOC_GETTIMELEFT                = 0x8004570a
++	WDIOC_GETTIMEOUT                 = 0x80045707
++	WDIOC_KEEPALIVE                  = 0x80045705
++	WDIOC_SETOPTIONS                 = 0x80045704
++	WORDSIZE                         = 0x40
++	XCASE                            = 0x4
++	XTABS                            = 0x1800
++)
++
++// Errors
++const (
++	EADDRINUSE      = syscall.Errno(0x62)
++	EADDRNOTAVAIL   = syscall.Errno(0x63)
++	EADV            = syscall.Errno(0x44)
++	EAFNOSUPPORT    = syscall.Errno(0x61)
++	EALREADY        = syscall.Errno(0x72)
++	EBADE           = syscall.Errno(0x34)
++	EBADFD          = syscall.Errno(0x4d)
++	EBADMSG         = syscall.Errno(0x4a)
++	EBADR           = syscall.Errno(0x35)
++	EBADRQC         = syscall.Errno(0x38)
++	EBADSLT         = syscall.Errno(0x39)
++	EBFONT          = syscall.Errno(0x3b)
++	ECANCELED       = syscall.Errno(0x7d)
++	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)
++	EDOTDOT         = syscall.Errno(0x49)
++	EDQUOT          = syscall.Errno(0x7a)
++	EHOSTDOWN       = syscall.Errno(0x70)
++	EHOSTUNREACH    = syscall.Errno(0x71)
++	EHWPOISON       = syscall.Errno(0x85)
++	EIDRM           = syscall.Errno(0x2b)
++	EILSEQ          = syscall.Errno(0x54)
++	EINPROGRESS     = syscall.Errno(0x73)
++	EISCONN         = syscall.Errno(0x6a)
++	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)
++	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)
++	ENOANO          = syscall.Errno(0x37)
++	ENOBUFS         = syscall.Errno(0x69)
++	ENOCSI          = syscall.Errno(0x32)
++	ENODATA         = syscall.Errno(0x3d)
++	ENOKEY          = syscall.Errno(0x7e)
++	ENOLCK          = syscall.Errno(0x25)
++	ENOLINK         = syscall.Errno(0x43)
++	ENOMEDIUM       = syscall.Errno(0x7b)
++	ENOMSG          = syscall.Errno(0x2a)
++	ENONET          = syscall.Errno(0x40)
++	ENOPKG          = syscall.Errno(0x41)
++	ENOPROTOOPT     = syscall.Errno(0x5c)
++	ENOSR           = syscall.Errno(0x3f)
++	ENOSTR          = syscall.Errno(0x3c)
++	ENOSYS          = syscall.Errno(0x26)
++	ENOTCONN        = syscall.Errno(0x6b)
++	ENOTEMPTY       = syscall.Errno(0x27)
++	ENOTNAM         = syscall.Errno(0x76)
++	ENOTRECOVERABLE = syscall.Errno(0x83)
++	ENOTSOCK        = syscall.Errno(0x58)
++	ENOTSUP         = syscall.Errno(0x5f)
++	ENOTUNIQ        = syscall.Errno(0x4c)
++	EOPNOTSUPP      = syscall.Errno(0x5f)
++	EOVERFLOW       = syscall.Errno(0x4b)
++	EOWNERDEAD      = syscall.Errno(0x82)
++	EPFNOSUPPORT    = syscall.Errno(0x60)
++	EPROTO          = syscall.Errno(0x47)
++	EPROTONOSUPPORT = syscall.Errno(0x5d)
++	EPROTOTYPE      = syscall.Errno(0x5b)
++	EREMCHG         = syscall.Errno(0x4e)
++	EREMOTE         = syscall.Errno(0x42)
++	EREMOTEIO       = syscall.Errno(0x79)
++	ERESTART        = syscall.Errno(0x55)
++	ERFKILL         = syscall.Errno(0x84)
++	ESHUTDOWN       = syscall.Errno(0x6c)
++	ESOCKTNOSUPPORT = syscall.Errno(0x5e)
++	ESRMNT          = syscall.Errno(0x45)
++	ESTALE          = syscall.Errno(0x74)
++	ESTRPIPE        = syscall.Errno(0x56)
++	ETIME           = syscall.Errno(0x3e)
++	ETIMEDOUT       = syscall.Errno(0x6e)
++	ETOOMANYREFS    = syscall.Errno(0x6d)
++	EUCLEAN         = syscall.Errno(0x75)
++	EUNATCH         = syscall.Errno(0x31)
++	EUSERS          = syscall.Errno(0x57)
++	EXFULL          = syscall.Errno(0x36)
++)
++
++// Signals
++const (
++	SIGBUS    = syscall.Signal(0x7)
++	SIGCHLD   = syscall.Signal(0x11)
++	SIGCLD    = syscall.Signal(0x11)
++	SIGCONT   = syscall.Signal(0x12)
++	SIGIO     = syscall.Signal(0x1d)
++	SIGPOLL   = syscall.Signal(0x1d)
++	SIGPROF   = syscall.Signal(0x1b)
++	SIGPWR    = syscall.Signal(0x1e)
++	SIGSTKFLT = syscall.Signal(0x10)
++	SIGSTOP   = syscall.Signal(0x13)
++	SIGSYS    = syscall.Signal(0x1f)
++	SIGTSTP   = syscall.Signal(0x14)
++	SIGTTIN   = syscall.Signal(0x15)
++	SIGTTOU   = syscall.Signal(0x16)
++	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 errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "memory page has hardware error"},
++}
++
++// Signal table
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index 3b570754..95e950fc 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
+@@ -3,7 +3,7 @@
+ 
+ // +build s390x,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
+ 
+ package unix
+@@ -11,1930 +11,547 @@ 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                               = 0x2b
+-	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_QIPCRTR                           = 0x2a
+-	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
+-	BLKPBSZGET                           = 0x127b
+-	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_RAW_FILTER_MAX                   = 0x200
+-	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
+-	EFD_CLOEXEC                          = 0x80000
+-	EFD_NONBLOCK                         = 0x800
+-	EFD_SEMAPHORE                        = 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                        = 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_NCSI                           = 0x88f8
+-	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_UNSHARE_RANGE              = 0x40
+-	FALLOC_FL_ZERO_RANGE                 = 0x10
+-	FD_CLOEXEC                           = 0x1
+-	FD_SETSIZE                           = 0x400
+-	FF0                                  = 0x0
+-	FF1                                  = 0x8000
+-	FFDLY                                = 0x8000
+-	FLUSHO                               = 0x1000
+-	FS_ENCRYPTION_MODE_AES_256_CBC       = 0x3
+-	FS_ENCRYPTION_MODE_AES_256_CTS       = 0x4
+-	FS_ENCRYPTION_MODE_AES_256_GCM       = 0x2
+-	FS_ENCRYPTION_MODE_AES_256_XTS       = 0x1
+-	FS_ENCRYPTION_MODE_INVALID           = 0x0
+-	FS_IOC_GET_ENCRYPTION_POLICY         = 0x400c6615
+-	FS_IOC_GET_ENCRYPTION_PWSALT         = 0x40106614
+-	FS_IOC_SET_ENCRYPTION_POLICY         = 0x800c6613
+-	FS_KEY_DESCRIPTOR_SIZE               = 0x8
+-	FS_KEY_DESC_PREFIX                   = "fscrypt:"
+-	FS_KEY_DESC_PREFIX_SIZE              = 0x8
+-	FS_MAX_KEY_SIZE                      = 0x40
+-	FS_POLICY_FLAGS_PAD_16               = 0x2
+-	FS_POLICY_FLAGS_PAD_32               = 0x3
+-	FS_POLICY_FLAGS_PAD_4                = 0x0
+-	FS_POLICY_FLAGS_PAD_8                = 0x1
+-	FS_POLICY_FLAGS_PAD_MASK             = 0x3
+-	FS_POLICY_FLAGS_VALID                = 0x3
+-	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
+-	GENL_ADMIN_PERM                      = 0x1
+-	GENL_CMD_CAP_DO                      = 0x2
+-	GENL_CMD_CAP_DUMP                    = 0x4
+-	GENL_CMD_CAP_HASPOL                  = 0x8
+-	GENL_HDRLEN                          = 0x4
+-	GENL_ID_CTRL                         = 0x10
+-	GENL_ID_PMCRAID                      = 0x12
+-	GENL_ID_VFS_DQUOT                    = 0x11
+-	GENL_MAX_ID                          = 0x3ff
+-	GENL_MIN_ID                          = 0x10
+-	GENL_NAMSIZ                          = 0x10
+-	GENL_START_ALLOC                     = 0x13
+-	GENL_UNS_ADMIN_PERM                  = 0x10
+-	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_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
+-	KEYCTL_ASSUME_AUTHORITY              = 0x10
+-	KEYCTL_CHOWN                         = 0x4
+-	KEYCTL_CLEAR                         = 0x7
+-	KEYCTL_DESCRIBE                      = 0x6
+-	KEYCTL_DH_COMPUTE                    = 0x17
+-	KEYCTL_GET_KEYRING_ID                = 0x0
+-	KEYCTL_GET_PERSISTENT                = 0x16
+-	KEYCTL_GET_SECURITY                  = 0x11
+-	KEYCTL_INSTANTIATE                   = 0xc
+-	KEYCTL_INSTANTIATE_IOV               = 0x14
+-	KEYCTL_INVALIDATE                    = 0x15
+-	KEYCTL_JOIN_SESSION_KEYRING          = 0x1
+-	KEYCTL_LINK                          = 0x8
+-	KEYCTL_NEGATE                        = 0xd
+-	KEYCTL_READ                          = 0xb
+-	KEYCTL_REJECT                        = 0x13
+-	KEYCTL_REVOKE                        = 0x3
+-	KEYCTL_SEARCH                        = 0xa
+-	KEYCTL_SESSION_TO_PARENT             = 0x12
+-	KEYCTL_SETPERM                       = 0x5
+-	KEYCTL_SET_REQKEY_KEYRING            = 0xe
+-	KEYCTL_SET_TIMEOUT                   = 0xf
+-	KEYCTL_UNLINK                        = 0x9
+-	KEYCTL_UPDATE                        = 0x2
+-	KEY_REQKEY_DEFL_DEFAULT              = 0x0
+-	KEY_REQKEY_DEFL_GROUP_KEYRING        = 0x6
+-	KEY_REQKEY_DEFL_NO_CHANGE            = -0x1
+-	KEY_REQKEY_DEFL_PROCESS_KEYRING      = 0x2
+-	KEY_REQKEY_DEFL_REQUESTOR_KEYRING    = 0x7
+-	KEY_REQKEY_DEFL_SESSION_KEYRING      = 0x3
+-	KEY_REQKEY_DEFL_THREAD_KEYRING       = 0x1
+-	KEY_REQKEY_DEFL_USER_KEYRING         = 0x4
+-	KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5
+-	KEY_SPEC_GROUP_KEYRING               = -0x6
+-	KEY_SPEC_PROCESS_KEYRING             = -0x2
+-	KEY_SPEC_REQKEY_AUTH_KEY             = -0x7
+-	KEY_SPEC_REQUESTOR_KEYRING           = -0x8
+-	KEY_SPEC_SESSION_KEYRING             = -0x3
+-	KEY_SPEC_THREAD_KEYRING              = -0x1
+-	KEY_SPEC_USER_KEYRING                = -0x4
+-	KEY_SPEC_USER_SESSION_KEYRING        = -0x5
+-	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                        = 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_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_BORN                              = 0x20000000
+-	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_NOREMOTELOCK                      = 0x8000000
+-	MS_NOSEC                             = 0x10000000
+-	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
+-	MS_VERBOSE                           = 0x8000
+-	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
+-	PERF_EVENT_IOC_DISABLE               = 0x2401
+-	PERF_EVENT_IOC_ENABLE                = 0x2400
+-	PERF_EVENT_IOC_ID                    = 0x80082407
+-	PERF_EVENT_IOC_PAUSE_OUTPUT          = 0x40042409
+-	PERF_EVENT_IOC_PERIOD                = 0x40082404
+-	PERF_EVENT_IOC_REFRESH               = 0x2402
+-	PERF_EVENT_IOC_RESET                 = 0x2403
+-	PERF_EVENT_IOC_SET_BPF               = 0x40042408
+-	PERF_EVENT_IOC_SET_FILTER            = 0x40082406
+-	PERF_EVENT_IOC_SET_OUTPUT            = 0x2405
+-	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_LOCKS                         = 0xa
+-	RLIMIT_MEMLOCK                       = 0x8
+-	RLIMIT_MSGQUEUE                      = 0xc
+-	RLIMIT_NICE                          = 0xd
+-	RLIMIT_NOFILE                        = 0x7
+-	RLIMIT_NPROC                         = 0x6
+-	RLIMIT_RSS                           = 0x5
+-	RLIMIT_RTPRIO                        = 0xe
+-	RLIMIT_RTTIME                        = 0xf
+-	RLIMIT_SIGPENDING                    = 0xb
+-	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                              = 0x19
+-	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                    = 0x19
+-	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_TIMESTAMPING_OPT_STATS           = 0x36
+-	SCM_TIMESTAMPNS                      = 0x23
+-	SCM_WIFI_STATUS                      = 0x29
+-	SECCOMP_MODE_DISABLED                = 0x0
+-	SECCOMP_MODE_FILTER                  = 0x2
+-	SECCOMP_MODE_STRICT                  = 0x1
+-	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
+-	SIOCGSKNS                            = 0x894c
+-	SIOCGSTAMP                           = 0x8906
+-	SIOCGSTAMPNS                         = 0x8907
+-	SIOCINQ                              = 0x541b
+-	SIOCOUTQ                             = 0x5411
+-	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                         = 0x80000
+-	SOCK_DCCP                            = 0x6
+-	SOCK_DGRAM                           = 0x2
+-	SOCK_IOC_TYPE                        = 0x89
+-	SOCK_NONBLOCK                        = 0x800
+-	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_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                           = 0x1
+-	SOL_TCP                              = 0x6
+-	SOL_TIPC                             = 0x10f
+-	SOL_X25                              = 0x106
+-	SOMAXCONN                            = 0x80
+-	SO_ACCEPTCONN                        = 0x1e
+-	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                         = 0x6
+-	SO_BSDCOMPAT                         = 0xe
+-	SO_BUSY_POLL                         = 0x2e
+-	SO_CNX_ADVICE                        = 0x35
+-	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
+-	TASKSTATS_CMD_ATTR_MAX               = 0x4
+-	TASKSTATS_CMD_MAX                    = 0x2
+-	TASKSTATS_GENL_NAME                  = "TASKSTATS"
+-	TASKSTATS_GENL_VERSION               = 0x1
+-	TASKSTATS_TYPE_MAX                   = 0x6
+-	TASKSTATS_VERSION                    = 0x8
+-	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_REPAIR_WINDOW                    = 0x1d
+-	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
+-	TS_COMM_LEN                          = 0x20
+-	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
+-	UMOUNT_NOFOLLOW                      = 0x8
+-	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
+-	XATTR_CREATE                         = 0x1
+-	XATTR_REPLACE                        = 0x2
+-	XCASE                                = 0x4
+-	XTABS                                = 0x1800
++	B1000000                         = 0x1008
++	B115200                          = 0x1002
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
++	B230400                          = 0x1003
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
++	B460800                          = 0x1004
++	B500000                          = 0x1005
++	B57600                           = 0x1001
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x80081270
++	BLKBSZSET                        = 0x40081271
++	BLKFLSBUF                        = 0x1261
++	BLKFRAGET                        = 0x1265
++	BLKFRASET                        = 0x1264
++	BLKGETSIZE                       = 0x1260
++	BLKGETSIZE64                     = 0x80081272
++	BLKPBSZGET                       = 0x127b
++	BLKRAGET                         = 0x1263
++	BLKRASET                         = 0x1262
++	BLKROGET                         = 0x125e
++	BLKROSET                         = 0x125d
++	BLKRRPART                        = 0x125f
++	BLKSECTGET                       = 0x1267
++	BLKSECTSET                       = 0x1266
++	BLKSSZGET                        = 0x1268
++	BOTHER                           = 0x1000
++	BS1                              = 0x2000
++	BSDLY                            = 0x2000
++	CBAUD                            = 0x100f
++	CBAUDEX                          = 0x1000
++	CIBAUD                           = 0x100f0000
++	CLOCAL                           = 0x800
++	CR1                              = 0x200
++	CR2                              = 0x400
++	CR3                              = 0x600
++	CRDLY                            = 0x600
++	CREAD                            = 0x80
++	CS6                              = 0x10
++	CS7                              = 0x20
++	CS8                              = 0x30
++	CSIZE                            = 0x30
++	CSTOPB                           = 0x40
++	ECHOCTL                          = 0x200
++	ECHOE                            = 0x10
++	ECHOK                            = 0x20
++	ECHOKE                           = 0x800
++	ECHONL                           = 0x40
++	ECHOPRT                          = 0x400
++	EFD_CLOEXEC                      = 0x80000
++	EFD_NONBLOCK                     = 0x800
++	EPOLL_CLOEXEC                    = 0x80000
++	EXTPROC                          = 0x10000
++	FF1                              = 0x8000
++	FFDLY                            = 0x8000
++	FLUSHO                           = 0x1000
++	FS_IOC_ENABLE_VERITY             = 0x40806685
++	FS_IOC_GETFLAGS                  = 0x80086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613
++	F_GETLK                          = 0x5
++	F_GETLK64                        = 0x5
++	F_GETOWN                         = 0x9
++	F_RDLCK                          = 0x0
++	F_SETLK                          = 0x6
++	F_SETLK64                        = 0x6
++	F_SETLKW                         = 0x7
++	F_SETLKW64                       = 0x7
++	F_SETOWN                         = 0x8
++	F_UNLCK                          = 0x2
++	F_WRLCK                          = 0x1
++	HUPCL                            = 0x400
++	ICANON                           = 0x2
++	IEXTEN                           = 0x8000
++	IN_CLOEXEC                       = 0x80000
++	IN_NONBLOCK                      = 0x800
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9
++	ISIG                             = 0x1
++	IUCLC                            = 0x200
++	IXOFF                            = 0x1000
++	IXON                             = 0x400
++	MAP_ANON                         = 0x20
++	MAP_ANONYMOUS                    = 0x20
++	MAP_DENYWRITE                    = 0x800
++	MAP_EXECUTABLE                   = 0x1000
++	MAP_GROWSDOWN                    = 0x100
++	MAP_HUGETLB                      = 0x40000
++	MAP_LOCKED                       = 0x2000
++	MAP_NONBLOCK                     = 0x10000
++	MAP_NORESERVE                    = 0x4000
++	MAP_POPULATE                     = 0x8000
++	MAP_STACK                        = 0x20000
++	MAP_SYNC                         = 0x80000
++	MCL_CURRENT                      = 0x1
++	MCL_FUTURE                       = 0x2
++	MCL_ONFAULT                      = 0x4
++	NFDBITS                          = 0x40
++	NLDLY                            = 0x100
++	NOFLSH                           = 0x80
++	NS_GET_NSTYPE                    = 0xb703
++	NS_GET_OWNER_UID                 = 0xb704
++	NS_GET_PARENT                    = 0xb702
++	NS_GET_USERNS                    = 0xb701
++	OLCUC                            = 0x2
++	ONLCR                            = 0x4
++	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_RSYNC                          = 0x101000
++	O_SYNC                           = 0x101000
++	O_TMPFILE                        = 0x410000
++	O_TRUNC                          = 0x200
++	PARENB                           = 0x100
++	PARODD                           = 0x200
++	PENDIN                           = 0x4000
++	PERF_EVENT_IOC_DISABLE           = 0x2401
++	PERF_EVENT_IOC_ENABLE            = 0x2400
++	PERF_EVENT_IOC_ID                = 0x80082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409
++	PERF_EVENT_IOC_PERIOD            = 0x40082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x2402
++	PERF_EVENT_IOC_RESET             = 0x2403
++	PERF_EVENT_IOC_SET_BPF           = 0x40042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x40082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405
++	PPPIOCATTACH                     = 0x4004743d
++	PPPIOCATTCHAN                    = 0x40047438
++	PPPIOCCONNECT                    = 0x4004743a
++	PPPIOCDETACH                     = 0x4004743c
++	PPPIOCDISCONN                    = 0x7439
++	PPPIOCGASYNCMAP                  = 0x80047458
++	PPPIOCGCHAN                      = 0x80047437
++	PPPIOCGDEBUG                     = 0x80047441
++	PPPIOCGFLAGS                     = 0x8004745a
++	PPPIOCGIDLE                      = 0x8010743f
++	PPPIOCGIDLE32                    = 0x8008743f
++	PPPIOCGIDLE64                    = 0x8010743f
++	PPPIOCGL2TPSTATS                 = 0x80487436
++	PPPIOCGMRU                       = 0x80047453
++	PPPIOCGRASYNCMAP                 = 0x80047455
++	PPPIOCGUNIT                      = 0x80047456
++	PPPIOCGXASYNCMAP                 = 0x80207450
++	PPPIOCSACTIVE                    = 0x40107446
++	PPPIOCSASYNCMAP                  = 0x40047457
++	PPPIOCSCOMPRESS                  = 0x4010744d
++	PPPIOCSDEBUG                     = 0x40047440
++	PPPIOCSFLAGS                     = 0x40047459
++	PPPIOCSMAXCID                    = 0x40047451
++	PPPIOCSMRRU                      = 0x4004743b
++	PPPIOCSMRU                       = 0x40047452
++	PPPIOCSNPMODE                    = 0x4008744b
++	PPPIOCSPASS                      = 0x40107447
++	PPPIOCSRASYNCMAP                 = 0x40047454
++	PPPIOCSXASYNCMAP                 = 0x4020744f
++	PPPIOCXFERUNIT                   = 0x744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
++	PTRACE_DISABLE_TE                = 0x5010
++	PTRACE_ENABLE_TE                 = 0x5009
++	PTRACE_GET_LAST_BREAK            = 0x5006
++	PTRACE_OLDSETOPTIONS             = 0x15
++	PTRACE_PEEKDATA_AREA             = 0x5003
++	PTRACE_PEEKTEXT_AREA             = 0x5002
++	PTRACE_PEEKUSR_AREA              = 0x5000
++	PTRACE_PEEK_SYSTEM_CALL          = 0x5007
++	PTRACE_POKEDATA_AREA             = 0x5005
++	PTRACE_POKETEXT_AREA             = 0x5004
++	PTRACE_POKEUSR_AREA              = 0x5001
++	PTRACE_POKE_SYSTEM_CALL          = 0x5008
++	PTRACE_PROT                      = 0x15
++	PTRACE_SINGLEBLOCK               = 0xc
++	PTRACE_TE_ABORT_RAND             = 0x5011
++	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_MEMLOCK                   = 0x8
++	RLIMIT_NOFILE                    = 0x7
++	RLIMIT_NPROC                     = 0x6
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x40085203
++	RNDADDTOENTCNT                   = 0x40045201
++	RNDCLEARPOOL                     = 0x5206
++	RNDGETENTCNT                     = 0x80045200
++	RNDGETPOOL                       = 0x80085202
++	RNDRESEEDCRNG                    = 0x5207
++	RNDZAPENTCNT                     = 0x5204
++	RTC_AIE_OFF                      = 0x7002
++	RTC_AIE_ON                       = 0x7001
++	RTC_ALM_READ                     = 0x80247008
++	RTC_ALM_SET                      = 0x40247007
++	RTC_EPOCH_READ                   = 0x8008700d
++	RTC_EPOCH_SET                    = 0x4008700e
++	RTC_IRQP_READ                    = 0x8008700b
++	RTC_IRQP_SET                     = 0x4008700c
++	RTC_PIE_OFF                      = 0x7006
++	RTC_PIE_ON                       = 0x7005
++	RTC_PLL_GET                      = 0x80207011
++	RTC_PLL_SET                      = 0x40207012
++	RTC_RD_TIME                      = 0x80247009
++	RTC_SET_TIME                     = 0x4024700a
++	RTC_UIE_OFF                      = 0x7004
++	RTC_UIE_ON                       = 0x7003
++	RTC_VL_CLR                       = 0x7014
++	RTC_VL_READ                      = 0x80047013
++	RTC_WIE_OFF                      = 0x7010
++	RTC_WIE_ON                       = 0x700f
++	RTC_WKALM_RD                     = 0x80287010
++	RTC_WKALM_SET                    = 0x4028700f
++	SCM_TIMESTAMPING                 = 0x25
++	SCM_TIMESTAMPING_OPT_STATS       = 0x36
++	SCM_TIMESTAMPING_PKTINFO         = 0x3a
++	SCM_TIMESTAMPNS                  = 0x23
++	SCM_TXTIME                       = 0x3d
++	SCM_WIFI_STATUS                  = 0x29
++	SFD_CLOEXEC                      = 0x80000
++	SFD_NONBLOCK                     = 0x800
++	SIOCATMARK                       = 0x8905
++	SIOCGPGRP                        = 0x8904
++	SIOCGSTAMPNS_NEW                 = 0x80108907
++	SIOCGSTAMP_NEW                   = 0x80108906
++	SIOCINQ                          = 0x541b
++	SIOCOUTQ                         = 0x5411
++	SIOCSPGRP                        = 0x8902
++	SOCK_CLOEXEC                     = 0x80000
++	SOCK_DGRAM                       = 0x2
++	SOCK_NONBLOCK                    = 0x800
++	SOCK_STREAM                      = 0x1
++	SOL_SOCKET                       = 0x1
++	SO_ACCEPTCONN                    = 0x1e
++	SO_ATTACH_BPF                    = 0x32
++	SO_ATTACH_REUSEPORT_CBPF         = 0x33
++	SO_ATTACH_REUSEPORT_EBPF         = 0x34
++	SO_BINDTODEVICE                  = 0x19
++	SO_BINDTOIFINDEX                 = 0x3e
++	SO_BPF_EXTENSIONS                = 0x30
++	SO_BROADCAST                     = 0x6
++	SO_BSDCOMPAT                     = 0xe
++	SO_BUSY_POLL                     = 0x2e
++	SO_CNX_ADVICE                    = 0x35
++	SO_COOKIE                        = 0x39
++	SO_DETACH_REUSEPORT_BPF          = 0x44
++	SO_DOMAIN                        = 0x27
++	SO_DONTROUTE                     = 0x5
++	SO_ERROR                         = 0x4
++	SO_INCOMING_CPU                  = 0x31
++	SO_INCOMING_NAPI_ID              = 0x38
++	SO_KEEPALIVE                     = 0x9
++	SO_LINGER                        = 0xd
++	SO_LOCK_FILTER                   = 0x2c
++	SO_MARK                          = 0x24
++	SO_MAX_PACING_RATE               = 0x2f
++	SO_MEMINFO                       = 0x37
++	SO_NOFCS                         = 0x2b
++	SO_OOBINLINE                     = 0xa
++	SO_PASSCRED                      = 0x10
++	SO_PASSSEC                       = 0x22
++	SO_PEEK_OFF                      = 0x2a
++	SO_PEERCRED                      = 0x11
++	SO_PEERGROUPS                    = 0x3b
++	SO_PEERSEC                       = 0x1f
++	SO_PROTOCOL                      = 0x26
++	SO_RCVBUF                        = 0x8
++	SO_RCVBUFFORCE                   = 0x21
++	SO_RCVLOWAT                      = 0x12
++	SO_RCVTIMEO                      = 0x14
++	SO_RCVTIMEO_NEW                  = 0x42
++	SO_RCVTIMEO_OLD                  = 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_SNDTIMEO_NEW                  = 0x43
++	SO_SNDTIMEO_OLD                  = 0x15
++	SO_TIMESTAMPING                  = 0x25
++	SO_TIMESTAMPING_NEW              = 0x41
++	SO_TIMESTAMPING_OLD              = 0x25
++	SO_TIMESTAMPNS                   = 0x23
++	SO_TIMESTAMPNS_NEW               = 0x40
++	SO_TIMESTAMPNS_OLD               = 0x23
++	SO_TIMESTAMP_NEW                 = 0x3f
++	SO_TXTIME                        = 0x3d
++	SO_TYPE                          = 0x3
++	SO_WIFI_STATUS                   = 0x29
++	SO_ZEROCOPY                      = 0x3c
++	TAB1                             = 0x800
++	TAB2                             = 0x1000
++	TAB3                             = 0x1800
++	TABDLY                           = 0x1800
++	TCFLSH                           = 0x540b
++	TCGETA                           = 0x5405
++	TCGETS                           = 0x5401
++	TCGETS2                          = 0x802c542a
++	TCGETX                           = 0x5432
++	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
++	TIOCGISO7816                     = 0x80285442
++	TIOCGLCKTRMIOS                   = 0x5456
++	TIOCGPGRP                        = 0x540f
++	TIOCGPKT                         = 0x80045438
++	TIOCGPTLCK                       = 0x80045439
++	TIOCGPTN                         = 0x80045430
++	TIOCGPTPEER                      = 0x5441
++	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_RI                         = 0x80
++	TIOCM_RNG                        = 0x80
++	TIOCM_SR                         = 0x10
++	TIOCM_ST                         = 0x8
++	TIOCNOTTY                        = 0x5422
++	TIOCNXCL                         = 0x540d
++	TIOCOUTQ                         = 0x5411
++	TIOCPKT                          = 0x5420
++	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
++	TIOCSISO7816                     = 0xc0285443
++	TIOCSLCKTRMIOS                   = 0x5457
++	TIOCSPGRP                        = 0x5410
++	TIOCSPTLCK                       = 0x40045431
++	TIOCSRS485                       = 0x542f
++	TIOCSSERIAL                      = 0x541f
++	TIOCSSOFTCAR                     = 0x541a
++	TIOCSTI                          = 0x5412
++	TIOCSWINSZ                       = 0x5414
++	TIOCVHANGUP                      = 0x5437
++	TOSTOP                           = 0x100
++	TUNATTACHFILTER                  = 0x401054d5
++	TUNDETACHFILTER                  = 0x401054d6
++	TUNGETDEVNETNS                   = 0x54e3
++	TUNGETFEATURES                   = 0x800454cf
++	TUNGETFILTER                     = 0x801054db
++	TUNGETIFF                        = 0x800454d2
++	TUNGETSNDBUF                     = 0x800454d3
++	TUNGETVNETBE                     = 0x800454df
++	TUNGETVNETHDRSZ                  = 0x800454d7
++	TUNGETVNETLE                     = 0x800454dd
++	TUNSETCARRIER                    = 0x400454e2
++	TUNSETDEBUG                      = 0x400454c9
++	TUNSETFILTEREBPF                 = 0x800454e1
++	TUNSETGROUP                      = 0x400454ce
++	TUNSETIFF                        = 0x400454ca
++	TUNSETIFINDEX                    = 0x400454da
++	TUNSETLINK                       = 0x400454cd
++	TUNSETNOCSUM                     = 0x400454c8
++	TUNSETOFFLOAD                    = 0x400454d0
++	TUNSETOWNER                      = 0x400454cc
++	TUNSETPERSIST                    = 0x400454cb
++	TUNSETQUEUE                      = 0x400454d9
++	TUNSETSNDBUF                     = 0x400454d4
++	TUNSETSTEERINGEBPF               = 0x800454e0
++	TUNSETTXFILTER                   = 0x400454d1
++	TUNSETVNETBE                     = 0x400454de
++	TUNSETVNETHDRSZ                  = 0x400454d8
++	TUNSETVNETLE                     = 0x400454dc
++	UBI_IOCATT                       = 0x40186f40
++	UBI_IOCDET                       = 0x40046f41
++	UBI_IOCEBCH                      = 0x40044f02
++	UBI_IOCEBER                      = 0x40044f01
++	UBI_IOCEBISMAP                   = 0x80044f05
++	UBI_IOCEBMAP                     = 0x40084f03
++	UBI_IOCEBUNMAP                   = 0x40044f04
++	UBI_IOCMKVOL                     = 0x40986f00
++	UBI_IOCRMVOL                     = 0x40046f01
++	UBI_IOCRNVOL                     = 0x51106f03
++	UBI_IOCRPEB                      = 0x40046f04
++	UBI_IOCRSVOL                     = 0x400c6f02
++	UBI_IOCSETVOLPROP                = 0x40104f06
++	UBI_IOCSPEB                      = 0x40046f05
++	UBI_IOCVOLCRBLK                  = 0x40804f07
++	UBI_IOCVOLRMBLK                  = 0x4f08
++	UBI_IOCVOLUP                     = 0x40084f00
++	VDISCARD                         = 0xd
++	VEOF                             = 0x4
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
++	VREPRINT                         = 0xc
++	VSTART                           = 0x8
++	VSTOP                            = 0x9
++	VSUSP                            = 0xa
++	VSWTC                            = 0x7
++	VT1                              = 0x4000
++	VTDLY                            = 0x4000
++	VTIME                            = 0x5
++	VWERASE                          = 0xe
++	WDIOC_GETBOOTSTATUS              = 0x80045702
++	WDIOC_GETPRETIMEOUT              = 0x80045709
++	WDIOC_GETSTATUS                  = 0x80045701
++	WDIOC_GETSUPPORT                 = 0x80285700
++	WDIOC_GETTEMP                    = 0x80045703
++	WDIOC_GETTIMELEFT                = 0x8004570a
++	WDIOC_GETTIMEOUT                 = 0x80045707
++	WDIOC_KEEPALIVE                  = 0x80045705
++	WDIOC_SETOPTIONS                 = 0x80045704
++	WORDSIZE                         = 0x40
++	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)
+@@ -1943,23 +560,15 @@ const (
+ 	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)
+@@ -1976,8 +585,6 @@ const (
+ 	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)
+@@ -1985,103 +592,70 @@ const (
+ 	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)
+@@ -2092,171 +666,179 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{35, "EDEADLK", "resource deadlock avoided"},
++	{36, "ENAMETOOLONG", "file name too long"},
++	{37, "ENOLCK", "no locks available"},
++	{38, "ENOSYS", "function not implemented"},
++	{39, "ENOTEMPTY", "directory not empty"},
++	{40, "ELOOP", "too many levels of symbolic links"},
++	{42, "ENOMSG", "no message of desired type"},
++	{43, "EIDRM", "identifier removed"},
++	{44, "ECHRNG", "channel number out of range"},
++	{45, "EL2NSYNC", "level 2 not synchronized"},
++	{46, "EL3HLT", "level 3 halted"},
++	{47, "EL3RST", "level 3 reset"},
++	{48, "ELNRNG", "link number out of range"},
++	{49, "EUNATCH", "protocol driver not attached"},
++	{50, "ENOCSI", "no CSI structure available"},
++	{51, "EL2HLT", "level 2 halted"},
++	{52, "EBADE", "invalid exchange"},
++	{53, "EBADR", "invalid request descriptor"},
++	{54, "EXFULL", "exchange full"},
++	{55, "ENOANO", "no anode"},
++	{56, "EBADRQC", "invalid request code"},
++	{57, "EBADSLT", "invalid slot"},
++	{59, "EBFONT", "bad font file format"},
++	{60, "ENOSTR", "device not a stream"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of streams resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "EMULTIHOP", "multihop attempted"},
++	{73, "EDOTDOT", "RFS specific error"},
++	{74, "EBADMSG", "bad message"},
++	{75, "EOVERFLOW", "value too large for defined data type"},
++	{76, "ENOTUNIQ", "name not unique on network"},
++	{77, "EBADFD", "file descriptor in bad state"},
++	{78, "EREMCHG", "remote address changed"},
++	{79, "ELIBACC", "can not access a needed shared library"},
++	{80, "ELIBBAD", "accessing a corrupted shared library"},
++	{81, "ELIBSCN", ".lib section in a.out corrupted"},
++	{82, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{83, "ELIBEXEC", "cannot exec a shared library directly"},
++	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{85, "ERESTART", "interrupted system call should be restarted"},
++	{86, "ESTRPIPE", "streams pipe error"},
++	{87, "EUSERS", "too many users"},
++	{88, "ENOTSOCK", "socket operation on non-socket"},
++	{89, "EDESTADDRREQ", "destination address required"},
++	{90, "EMSGSIZE", "message too long"},
++	{91, "EPROTOTYPE", "protocol wrong type for socket"},
++	{92, "ENOPROTOOPT", "protocol not available"},
++	{93, "EPROTONOSUPPORT", "protocol not supported"},
++	{94, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{95, "ENOTSUP", "operation not supported"},
++	{96, "EPFNOSUPPORT", "protocol family not supported"},
++	{97, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{98, "EADDRINUSE", "address already in use"},
++	{99, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{100, "ENETDOWN", "network is down"},
++	{101, "ENETUNREACH", "network is unreachable"},
++	{102, "ENETRESET", "network dropped connection on reset"},
++	{103, "ECONNABORTED", "software caused connection abort"},
++	{104, "ECONNRESET", "connection reset by peer"},
++	{105, "ENOBUFS", "no buffer space available"},
++	{106, "EISCONN", "transport endpoint is already connected"},
++	{107, "ENOTCONN", "transport endpoint is not connected"},
++	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{109, "ETOOMANYREFS", "too many references: cannot splice"},
++	{110, "ETIMEDOUT", "connection timed out"},
++	{111, "ECONNREFUSED", "connection refused"},
++	{112, "EHOSTDOWN", "host is down"},
++	{113, "EHOSTUNREACH", "no route to host"},
++	{114, "EALREADY", "operation already in progress"},
++	{115, "EINPROGRESS", "operation now in progress"},
++	{116, "ESTALE", "stale file handle"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EDQUOT", "disk quota exceeded"},
++	{123, "ENOMEDIUM", "no medium found"},
++	{124, "EMEDIUMTYPE", "wrong medium type"},
++	{125, "ECANCELED", "operation canceled"},
++	{126, "ENOKEY", "required key not available"},
++	{127, "EKEYEXPIRED", "key has expired"},
++	{128, "EKEYREVOKED", "key has been revoked"},
++	{129, "EKEYREJECTED", "key was rejected by service"},
++	{130, "EOWNERDEAD", "owner died"},
++	{131, "ENOTRECOVERABLE", "state not recoverable"},
++	{132, "ERFKILL", "operation not possible due to RF-kill"},
++	{133, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGBUS", "bus error"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGUSR1", "user defined signal 1"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGUSR2", "user defined signal 2"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGSTKFLT", "stack fault"},
++	{17, "SIGCHLD", "child exited"},
++	{18, "SIGCONT", "continued"},
++	{19, "SIGSTOP", "stopped (signal)"},
++	{20, "SIGTSTP", "stopped"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGURG", "urgent I/O condition"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGIO", "I/O possible"},
++	{30, "SIGPWR", "power failure"},
++	{31, "SIGSYS", "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
+index 95de199f..079762fa 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
+@@ -1,915 +1,132 @@
+-// mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// mkerrors.sh -Wall -Werror -static -I/tmp/include
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build sparc64,linux
+ 
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs -- -m64 _const.go
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include _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
++	B1000000                         = 0x1008
+ 	B115200                          = 0x1002
+-	B1152000                         = 0x100d
+-	B1200                            = 0x9
+-	B134                             = 0x4
+-	B150                             = 0x5
+-	B1500000                         = 0x100e
+-	B153600                          = 0x1006
+-	B1800                            = 0xa
+-	B19200                           = 0xe
+-	B200                             = 0x6
+-	B2000000                         = 0x100f
++	B1152000                         = 0x1009
++	B1500000                         = 0x100a
++	B2000000                         = 0x100b
+ 	B230400                          = 0x1003
+-	B2400                            = 0xb
+-	B300                             = 0x7
+-	B307200                          = 0x1007
+-	B38400                           = 0xf
++	B2500000                         = 0x100c
++	B3000000                         = 0x100d
++	B3500000                         = 0x100e
++	B4000000                         = 0x100f
+ 	B460800                          = 0x1004
+-	B4800                            = 0xc
+-	B50                              = 0x1
+-	B500000                          = 0x100a
++	B500000                          = 0x1005
+ 	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
++	B576000                          = 0x1006
++	B921600                          = 0x1007
++	BLKBSZGET                        = 0x40081270
++	BLKBSZSET                        = 0x80081271
++	BLKFLSBUF                        = 0x20001261
++	BLKFRAGET                        = 0x20001265
++	BLKFRASET                        = 0x20001264
++	BLKGETSIZE                       = 0x20001260
++	BLKGETSIZE64                     = 0x40081272
++	BLKPBSZGET                       = 0x2000127b
++	BLKRAGET                         = 0x20001263
++	BLKRASET                         = 0x20001262
++	BLKROGET                         = 0x2000125e
++	BLKROSET                         = 0x2000125d
++	BLKRRPART                        = 0x2000125f
++	BLKSECTGET                       = 0x20001267
++	BLKSECTSET                       = 0x20001266
++	BLKSSZGET                        = 0x20001268
+ 	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
++	EFD_CLOEXEC                      = 0x400000
++	EFD_NONBLOCK                     = 0x4000
+ 	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
++	FLUSHO                           = 0x1000
++	FS_IOC_ENABLE_VERITY             = 0x80806685
++	FS_IOC_GETFLAGS                  = 0x40086601
++	FS_IOC_GET_ENCRYPTION_POLICY     = 0x800c6615
++	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x80106614
++	FS_IOC_SET_ENCRYPTION_POLICY     = 0x400c6613
+ 	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
++	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x200007b9
+ 	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
++	MAP_SYNC                         = 0x80000
+ 	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
++	NFDBITS                          = 0x40
+ 	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
++	NS_GET_NSTYPE                    = 0x2000b703
++	NS_GET_OWNER_UID                 = 0x2000b704
++	NS_GET_PARENT                    = 0x2000b702
++	NS_GET_USERNS                    = 0x2000b701
+ 	OLCUC                            = 0x2
+ 	ONLCR                            = 0x4
+-	ONLRET                           = 0x20
+-	ONOCR                            = 0x10
+-	OPOST                            = 0x1
+-	O_ACCMODE                        = 0x3
+ 	O_APPEND                         = 0x8
+ 	O_ASYNC                          = 0x40
+ 	O_CLOEXEC                        = 0x400000
+@@ -926,231 +143,67 @@ const (
+ 	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
++	PERF_EVENT_IOC_DISABLE           = 0x20002401
++	PERF_EVENT_IOC_ENABLE            = 0x20002400
++	PERF_EVENT_IOC_ID                = 0x40082407
++	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b
++	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x80042409
++	PERF_EVENT_IOC_PERIOD            = 0x80082404
++	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a
++	PERF_EVENT_IOC_REFRESH           = 0x20002402
++	PERF_EVENT_IOC_RESET             = 0x20002403
++	PERF_EVENT_IOC_SET_BPF           = 0x80042408
++	PERF_EVENT_IOC_SET_FILTER        = 0x80082406
++	PERF_EVENT_IOC_SET_OUTPUT        = 0x20002405
++	PPPIOCATTACH                     = 0x8004743d
++	PPPIOCATTCHAN                    = 0x80047438
++	PPPIOCCONNECT                    = 0x8004743a
++	PPPIOCDETACH                     = 0x8004743c
++	PPPIOCDISCONN                    = 0x20007439
++	PPPIOCGASYNCMAP                  = 0x40047458
++	PPPIOCGCHAN                      = 0x40047437
++	PPPIOCGDEBUG                     = 0x40047441
++	PPPIOCGFLAGS                     = 0x4004745a
++	PPPIOCGIDLE                      = 0x4010743f
++	PPPIOCGIDLE32                    = 0x4008743f
++	PPPIOCGIDLE64                    = 0x4010743f
++	PPPIOCGL2TPSTATS                 = 0x40487436
++	PPPIOCGMRU                       = 0x40047453
++	PPPIOCGRASYNCMAP                 = 0x40047455
++	PPPIOCGUNIT                      = 0x40047456
++	PPPIOCGXASYNCMAP                 = 0x40207450
++	PPPIOCSACTIVE                    = 0x80107446
++	PPPIOCSASYNCMAP                  = 0x80047457
++	PPPIOCSCOMPRESS                  = 0x8010744d
++	PPPIOCSDEBUG                     = 0x80047440
++	PPPIOCSFLAGS                     = 0x80047459
++	PPPIOCSMAXCID                    = 0x80047451
++	PPPIOCSMRRU                      = 0x8004743b
++	PPPIOCSMRU                       = 0x80047452
++	PPPIOCSNPMODE                    = 0x8008744b
++	PPPIOCSPASS                      = 0x80107447
++	PPPIOCSRASYNCMAP                 = 0x80047454
++	PPPIOCSXASYNCMAP                 = 0x8020744f
++	PPPIOCXFERUNIT                   = 0x2000744e
++	PR_SET_PTRACER_ANY               = 0xffffffffffffffff
+ 	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
+@@ -1202,329 +255,98 @@ const (
+ 	PT_WIM                           = 0x10
+ 	PT_Y                             = 0xc
+ 	RLIMIT_AS                        = 0x9
+-	RLIMIT_CORE                      = 0x4
+-	RLIMIT_CPU                       = 0x0
+-	RLIMIT_DATA                      = 0x2
+-	RLIMIT_FSIZE                     = 0x1
++	RLIMIT_MEMLOCK                   = 0x8
+ 	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
++	RLIMIT_NPROC                     = 0x7
++	RLIMIT_RSS                       = 0x5
++	RNDADDENTROPY                    = 0x80085203
++	RNDADDTOENTCNT                   = 0x80045201
++	RNDCLEARPOOL                     = 0x20005206
++	RNDGETENTCNT                     = 0x40045200
++	RNDGETPOOL                       = 0x40085202
++	RNDRESEEDCRNG                    = 0x20005207
++	RNDZAPENTCNT                     = 0x20005204
++	RTC_AIE_OFF                      = 0x20007002
++	RTC_AIE_ON                       = 0x20007001
++	RTC_ALM_READ                     = 0x40247008
++	RTC_ALM_SET                      = 0x80247007
++	RTC_EPOCH_READ                   = 0x4008700d
++	RTC_EPOCH_SET                    = 0x8008700e
++	RTC_IRQP_READ                    = 0x4008700b
++	RTC_IRQP_SET                     = 0x8008700c
++	RTC_PIE_OFF                      = 0x20007006
++	RTC_PIE_ON                       = 0x20007005
++	RTC_PLL_GET                      = 0x40207011
++	RTC_PLL_SET                      = 0x80207012
++	RTC_RD_TIME                      = 0x40247009
++	RTC_SET_TIME                     = 0x8024700a
++	RTC_UIE_OFF                      = 0x20007004
++	RTC_UIE_ON                       = 0x20007003
++	RTC_VL_CLR                       = 0x20007014
++	RTC_VL_READ                      = 0x40047013
++	RTC_WIE_OFF                      = 0x20007010
++	RTC_WIE_ON                       = 0x2000700f
++	RTC_WKALM_RD                     = 0x40287010
++	RTC_WKALM_SET                    = 0x8028700f
+ 	SCM_TIMESTAMPING                 = 0x23
++	SCM_TIMESTAMPING_OPT_STATS       = 0x38
++	SCM_TIMESTAMPING_PKTINFO         = 0x3c
+ 	SCM_TIMESTAMPNS                  = 0x21
++	SCM_TXTIME                       = 0x3f
+ 	SCM_WIFI_STATUS                  = 0x25
+-	SHUT_RD                          = 0x0
+-	SHUT_RDWR                        = 0x2
+-	SHUT_WR                          = 0x1
+-	SIOCADDDLCI                      = 0x8980
+-	SIOCADDMULTI                     = 0x8931
+-	SIOCADDRT                        = 0x890b
++	SFD_CLOEXEC                      = 0x400000
++	SFD_NONBLOCK                     = 0x4000
+ 	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
++	SIOCGSTAMPNS_NEW                 = 0x40108907
++	SIOCGSTAMP_NEW                   = 0x40108906
+ 	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_BINDTOIFINDEX                 = 0x41
+ 	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_COOKIE                        = 0x3b
++	SO_DETACH_REUSEPORT_BPF          = 0x47
+ 	SO_DOMAIN                        = 0x1029
+ 	SO_DONTROUTE                     = 0x10
+ 	SO_ERROR                         = 0x1007
+-	SO_GET_FILTER                    = 0x1a
+ 	SO_INCOMING_CPU                  = 0x33
++	SO_INCOMING_NAPI_ID              = 0x3a
+ 	SO_KEEPALIVE                     = 0x8
+ 	SO_LINGER                        = 0x80
+ 	SO_LOCK_FILTER                   = 0x28
+ 	SO_MARK                          = 0x22
+ 	SO_MAX_PACING_RATE               = 0x31
++	SO_MEMINFO                       = 0x39
+ 	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_PEERGROUPS                    = 0x3d
+ 	SO_PEERSEC                       = 0x1e
+-	SO_PRIORITY                      = 0xc
+ 	SO_PROTOCOL                      = 0x1028
+ 	SO_RCVBUF                        = 0x1002
+ 	SO_RCVBUFFORCE                   = 0x100b
+ 	SO_RCVLOWAT                      = 0x800
+ 	SO_RCVTIMEO                      = 0x2000
++	SO_RCVTIMEO_NEW                  = 0x44
++	SO_RCVTIMEO_OLD                  = 0x2000
+ 	SO_REUSEADDR                     = 0x4
+ 	SO_REUSEPORT                     = 0x200
+ 	SO_RXQ_OVFL                      = 0x24
+@@ -1536,50 +358,19 @@ const (
+ 	SO_SNDBUFFORCE                   = 0x100a
+ 	SO_SNDLOWAT                      = 0x1000
+ 	SO_SNDTIMEO                      = 0x4000
+-	SO_TIMESTAMP                     = 0x1d
++	SO_SNDTIMEO_NEW                  = 0x45
++	SO_SNDTIMEO_OLD                  = 0x4000
+ 	SO_TIMESTAMPING                  = 0x23
++	SO_TIMESTAMPING_NEW              = 0x43
++	SO_TIMESTAMPING_OLD              = 0x23
+ 	SO_TIMESTAMPNS                   = 0x21
++	SO_TIMESTAMPNS_NEW               = 0x42
++	SO_TIMESTAMPNS_OLD               = 0x21
++	SO_TIMESTAMP_NEW                 = 0x46
++	SO_TXTIME                        = 0x3f
+ 	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
++	SO_ZEROCOPY                      = 0x3e
+ 	TAB1                             = 0x800
+ 	TAB2                             = 0x1000
+ 	TAB3                             = 0x1800
+@@ -1588,54 +379,6 @@ const (
+ 	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
+@@ -1656,11 +399,13 @@ const (
+ 	TIOCGETD                         = 0x40047400
+ 	TIOCGEXCL                        = 0x40045440
+ 	TIOCGICOUNT                      = 0x545d
++	TIOCGISO7816                     = 0x40285443
+ 	TIOCGLCKTRMIOS                   = 0x5456
+ 	TIOCGPGRP                        = 0x40047483
+ 	TIOCGPKT                         = 0x40045438
+ 	TIOCGPTLCK                       = 0x40045439
+ 	TIOCGPTN                         = 0x40047486
++	TIOCGPTPEER                      = 0x20007489
+ 	TIOCGRS485                       = 0x40205441
+ 	TIOCGSERIAL                      = 0x541e
+ 	TIOCGSID                         = 0x40047485
+@@ -1677,28 +422,14 @@ const (
+ 	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
+@@ -1708,9 +439,9 @@ const (
+ 	TIOCSERGWILD                     = 0x5454
+ 	TIOCSERSETMULTI                  = 0x545b
+ 	TIOCSERSWILD                     = 0x5455
+-	TIOCSER_TEMT                     = 0x1
+ 	TIOCSETD                         = 0x80047401
+ 	TIOCSIG                          = 0x80047488
++	TIOCSISO7816                     = 0xc0285444
+ 	TIOCSLCKTRMIOS                   = 0x5457
+ 	TIOCSPGRP                        = 0x80047482
+ 	TIOCSPTLCK                       = 0x80047487
+@@ -1725,6 +456,7 @@ const (
+ 	TOSTOP                           = 0x100
+ 	TUNATTACHFILTER                  = 0x801054d5
+ 	TUNDETACHFILTER                  = 0x801054d6
++	TUNGETDEVNETNS                   = 0x200054e3
+ 	TUNGETFEATURES                   = 0x400454cf
+ 	TUNGETFILTER                     = 0x401054db
+ 	TUNGETIFF                        = 0x400454d2
+@@ -1732,7 +464,9 @@ const (
+ 	TUNGETVNETBE                     = 0x400454df
+ 	TUNGETVNETHDRSZ                  = 0x400454d7
+ 	TUNGETVNETLE                     = 0x400454dd
++	TUNSETCARRIER                    = 0x800454e2
+ 	TUNSETDEBUG                      = 0x800454c9
++	TUNSETFILTEREBPF                 = 0x400454e1
+ 	TUNSETGROUP                      = 0x800454ce
+ 	TUNSETIFF                        = 0x800454ca
+ 	TUNSETIFINDEX                    = 0x800454da
+@@ -1743,47 +477,52 @@ const (
+ 	TUNSETPERSIST                    = 0x800454cb
+ 	TUNSETQUEUE                      = 0x800454d9
+ 	TUNSETSNDBUF                     = 0x800454d4
++	TUNSETSTEERINGEBPF               = 0x400454e0
+ 	TUNSETTXFILTER                   = 0x800454d1
+ 	TUNSETVNETBE                     = 0x800454de
+ 	TUNSETVNETHDRSZ                  = 0x800454d8
+ 	TUNSETVNETLE                     = 0x800454dc
++	UBI_IOCATT                       = 0x80186f40
++	UBI_IOCDET                       = 0x80046f41
++	UBI_IOCEBCH                      = 0x80044f02
++	UBI_IOCEBER                      = 0x80044f01
++	UBI_IOCEBISMAP                   = 0x40044f05
++	UBI_IOCEBMAP                     = 0x80084f03
++	UBI_IOCEBUNMAP                   = 0x80044f04
++	UBI_IOCMKVOL                     = 0x80986f00
++	UBI_IOCRMVOL                     = 0x80046f01
++	UBI_IOCRNVOL                     = 0x91106f03
++	UBI_IOCRPEB                      = 0x80046f04
++	UBI_IOCRSVOL                     = 0x800c6f02
++	UBI_IOCSETVOLPROP                = 0x80104f06
++	UBI_IOCSPEB                      = 0x80046f05
++	UBI_IOCVOLCRBLK                  = 0x80804f07
++	UBI_IOCVOLRMBLK                  = 0x20004f08
++	UBI_IOCVOLUP                     = 0x80084f00
+ 	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
++	VEOL                             = 0xb
++	VEOL2                            = 0x10
++	VMIN                             = 0x6
+ 	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
++	WDIOC_GETBOOTSTATUS              = 0x40045702
++	WDIOC_GETPRETIMEOUT              = 0x40045709
++	WDIOC_GETSTATUS                  = 0x40045701
++	WDIOC_GETSUPPORT                 = 0x40285700
++	WDIOC_GETTEMP                    = 0x40045703
++	WDIOC_GETTIMELEFT                = 0x4004570a
++	WDIOC_GETTIMEOUT                 = 0x40045707
++	WDIOC_KEEPALIVE                  = 0x40045705
++	WDIOC_SETOPTIONS                 = 0x40045704
+ 	WORDSIZE                         = 0x40
+-	WRAP                             = 0x20000
+-	WSTOPPED                         = 0x2
+-	WUNTRACED                        = 0x2
+ 	XCASE                            = 0x4
+ 	XTABS                            = 0x1800
+ 	__TIOCFLUSH                      = 0x80047410
+@@ -1791,25 +530,19 @@ const (
+ 
+ // 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)
+@@ -1818,23 +551,15 @@ const (
+ 	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)
+@@ -1851,8 +576,6 @@ const (
+ 	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)
+@@ -1860,102 +583,70 @@ const (
+ 	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)
+@@ -1969,174 +660,182 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device or resource busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "invalid cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "numerical result out of range"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "ENOTSUP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "transport endpoint is already connected"},
++	{57, "ENOTCONN", "transport endpoint is not connected"},
++	{58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"},
++	{59, "ETOOMANYREFS", "too many references: cannot splice"},
++	{60, "ETIMEDOUT", "connection timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disk quota exceeded"},
++	{70, "ESTALE", "stale file handle"},
++	{71, "EREMOTE", "object is remote"},
++	{72, "ENOSTR", "device not a stream"},
++	{73, "ETIME", "timer expired"},
++	{74, "ENOSR", "out of streams resources"},
++	{75, "ENOMSG", "no message of desired type"},
++	{76, "EBADMSG", "bad message"},
++	{77, "EIDRM", "identifier removed"},
++	{78, "EDEADLK", "resource deadlock avoided"},
++	{79, "ENOLCK", "no locks available"},
++	{80, "ENONET", "machine is not on the network"},
++	{81, "ERREMOTE", "unknown error 81"},
++	{82, "ENOLINK", "link has been severed"},
++	{83, "EADV", "advertise error"},
++	{84, "ESRMNT", "srmount error"},
++	{85, "ECOMM", "communication error on send"},
++	{86, "EPROTO", "protocol error"},
++	{87, "EMULTIHOP", "multihop attempted"},
++	{88, "EDOTDOT", "RFS specific error"},
++	{89, "EREMCHG", "remote address changed"},
++	{90, "ENOSYS", "function not implemented"},
++	{91, "ESTRPIPE", "streams pipe error"},
++	{92, "EOVERFLOW", "value too large for defined data type"},
++	{93, "EBADFD", "file descriptor in bad state"},
++	{94, "ECHRNG", "channel number out of range"},
++	{95, "EL2NSYNC", "level 2 not synchronized"},
++	{96, "EL3HLT", "level 3 halted"},
++	{97, "EL3RST", "level 3 reset"},
++	{98, "ELNRNG", "link number out of range"},
++	{99, "EUNATCH", "protocol driver not attached"},
++	{100, "ENOCSI", "no CSI structure available"},
++	{101, "EL2HLT", "level 2 halted"},
++	{102, "EBADE", "invalid exchange"},
++	{103, "EBADR", "invalid request descriptor"},
++	{104, "EXFULL", "exchange full"},
++	{105, "ENOANO", "no anode"},
++	{106, "EBADRQC", "invalid request code"},
++	{107, "EBADSLT", "invalid slot"},
++	{108, "EDEADLOCK", "file locking deadlock error"},
++	{109, "EBFONT", "bad font file format"},
++	{110, "ELIBEXEC", "cannot exec a shared library directly"},
++	{111, "ENODATA", "no data available"},
++	{112, "ELIBBAD", "accessing a corrupted shared library"},
++	{113, "ENOPKG", "package not installed"},
++	{114, "ELIBACC", "can not access a needed shared library"},
++	{115, "ENOTUNIQ", "name not unique on network"},
++	{116, "ERESTART", "interrupted system call should be restarted"},
++	{117, "EUCLEAN", "structure needs cleaning"},
++	{118, "ENOTNAM", "not a XENIX named type file"},
++	{119, "ENAVAIL", "no XENIX semaphores available"},
++	{120, "EISNAM", "is a named type file"},
++	{121, "EREMOTEIO", "remote I/O error"},
++	{122, "EILSEQ", "invalid or incomplete multibyte or wide character"},
++	{123, "ELIBMAX", "attempting to link in too many shared libraries"},
++	{124, "ELIBSCN", ".lib section in a.out corrupted"},
++	{125, "ENOMEDIUM", "no medium found"},
++	{126, "EMEDIUMTYPE", "wrong medium type"},
++	{127, "ECANCELED", "operation canceled"},
++	{128, "ENOKEY", "required key not available"},
++	{129, "EKEYEXPIRED", "key has expired"},
++	{130, "EKEYREVOKED", "key has been revoked"},
++	{131, "EKEYREJECTED", "key was rejected by service"},
++	{132, "EOWNERDEAD", "owner died"},
++	{133, "ENOTRECOVERABLE", "state not recoverable"},
++	{134, "ERFKILL", "operation not possible due to RF-kill"},
++	{135, "EHWPOISON", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/breakpoint trap"},
++	{6, "SIGABRT", "aborted"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "CPU time limit exceeded"},
++	{25, "SIGXFSZ", "file size limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window changed"},
++	{29, "SIGLOST", "power failure"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "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
+index b4338d5f..96b9b8ab 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m32
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,netbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+ 
+ package unix
+@@ -159,6 +159,7 @@ const (
+ 	CLONE_VFORK                       = 0x4000
+ 	CLONE_VM                          = 0x100
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -169,6 +170,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	CTL_QUERY                         = -0x2
+@@ -547,6 +550,10 @@ const (
+ 	EV_ONESHOT                        = 0x10
+ 	EV_SYSFLAGS                       = 0xf000
+ 	EXTA                              = 0x4b00
++	EXTATTR_CMD_START                 = 0x1
++	EXTATTR_CMD_STOP                  = 0x2
++	EXTATTR_NAMESPACE_SYSTEM          = 0x2
++	EXTATTR_NAMESPACE_USER            = 0x1
+ 	EXTB                              = 0x9600
+ 	EXTPROC                           = 0x800
+ 	FD_CLOEXEC                        = 0x1
+@@ -581,6 +588,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -970,6 +978,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -1008,6 +1020,43 @@ const (
+ 	MAP_WIRED                         = 0x800
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_BASIC_FLAGS                   = 0xe782807f
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DISCARD                       = 0x800000
++	MNT_EXKERB                        = 0x800
++	MNT_EXNORESPORT                   = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXPUBLIC                      = 0x10000000
++	MNT_EXRDONLY                      = 0x80
++	MNT_EXTATTR                       = 0x1000000
++	MNT_FORCE                         = 0x80000
++	MNT_GETARGS                       = 0x400000
++	MNT_IGNORE                        = 0x100000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_LOG                           = 0x2000000
++	MNT_NOATIME                       = 0x4000000
++	MNT_NOCOREDUMP                    = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NODEVMTIME                    = 0x40000000
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_OP_FLAGS                      = 0x4d0000
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELATIME                      = 0x20000
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x80000000
++	MNT_SYMPERM                       = 0x20000000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UNION                         = 0x20
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0xff90ffff
++	MNT_WAIT                          = 0x1
+ 	MSG_BCAST                         = 0x100
+ 	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CONTROLMBUF                   = 0x2000000
+@@ -1036,6 +1085,7 @@ const (
+ 	NET_RT_MAXID                      = 0x6
+ 	NET_RT_OIFLIST                    = 0x4
+ 	NET_RT_OOIFLIST                   = 0x3
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
+ 	NOTE_ATTRIB                       = 0x8
+ 	NOTE_CHILD                        = 0x4
+@@ -1101,7 +1151,10 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
+@@ -1576,137 +1629,145 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large or too small"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol option not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "connection timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EILSEQ", "illegal byte sequence"},
++	{86, "ENOTSUP", "not supported"},
++	{87, "ECANCELED", "operation Canceled"},
++	{88, "EBADMSG", "bad or Corrupt message"},
++	{89, "ENODATA", "no message available"},
++	{90, "ENOSR", "no STREAM resources"},
++	{91, "ENOSTR", "not a STREAM"},
++	{92, "ETIME", "STREAM ioctl timeout"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EMULTIHOP", "multihop attempted"},
++	{95, "ENOLINK", "link has been severed"},
++	{96, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGPWR", "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
+index 4994437b..ed522a84 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,netbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -159,6 +159,7 @@ const (
+ 	CLONE_VFORK                       = 0x4000
+ 	CLONE_VM                          = 0x100
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -169,6 +170,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	CTL_QUERY                         = -0x2
+@@ -537,6 +540,10 @@ const (
+ 	EV_ONESHOT                        = 0x10
+ 	EV_SYSFLAGS                       = 0xf000
+ 	EXTA                              = 0x4b00
++	EXTATTR_CMD_START                 = 0x1
++	EXTATTR_CMD_STOP                  = 0x2
++	EXTATTR_NAMESPACE_SYSTEM          = 0x2
++	EXTATTR_NAMESPACE_USER            = 0x1
+ 	EXTB                              = 0x9600
+ 	EXTPROC                           = 0x800
+ 	FD_CLOEXEC                        = 0x1
+@@ -571,6 +578,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -960,6 +968,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -998,6 +1010,43 @@ const (
+ 	MAP_WIRED                         = 0x800
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_BASIC_FLAGS                   = 0xe782807f
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DISCARD                       = 0x800000
++	MNT_EXKERB                        = 0x800
++	MNT_EXNORESPORT                   = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXPUBLIC                      = 0x10000000
++	MNT_EXRDONLY                      = 0x80
++	MNT_EXTATTR                       = 0x1000000
++	MNT_FORCE                         = 0x80000
++	MNT_GETARGS                       = 0x400000
++	MNT_IGNORE                        = 0x100000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_LOG                           = 0x2000000
++	MNT_NOATIME                       = 0x4000000
++	MNT_NOCOREDUMP                    = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NODEVMTIME                    = 0x40000000
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_OP_FLAGS                      = 0x4d0000
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELATIME                      = 0x20000
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x80000000
++	MNT_SYMPERM                       = 0x20000000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UNION                         = 0x20
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0xff90ffff
++	MNT_WAIT                          = 0x1
+ 	MSG_BCAST                         = 0x100
+ 	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CONTROLMBUF                   = 0x2000000
+@@ -1026,6 +1075,7 @@ const (
+ 	NET_RT_MAXID                      = 0x6
+ 	NET_RT_OIFLIST                    = 0x4
+ 	NET_RT_OOIFLIST                   = 0x3
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
+ 	NOTE_ATTRIB                       = 0x8
+ 	NOTE_CHILD                        = 0x4
+@@ -1091,7 +1141,10 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
+@@ -1566,137 +1619,145 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large or too small"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol option not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "connection timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EILSEQ", "illegal byte sequence"},
++	{86, "ENOTSUP", "not supported"},
++	{87, "ECANCELED", "operation Canceled"},
++	{88, "EBADMSG", "bad or Corrupt message"},
++	{89, "ENODATA", "no message available"},
++	{90, "ENOSR", "no STREAM resources"},
++	{91, "ENOSTR", "not a STREAM"},
++	{92, "ETIME", "STREAM ioctl timeout"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EMULTIHOP", "multihop attempted"},
++	{95, "ENOLINK", "link has been severed"},
++	{96, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGPWR", "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
+index 206c75f0..c8d36fe9 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -marm
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,netbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -marm _const.go
+ 
+ package unix
+@@ -151,6 +151,7 @@ const (
+ 	CFLUSH                            = 0xf
+ 	CLOCAL                            = 0x8000
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -161,6 +162,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	CTL_QUERY                         = -0x2
+@@ -529,6 +532,10 @@ const (
+ 	EV_ONESHOT                        = 0x10
+ 	EV_SYSFLAGS                       = 0xf000
+ 	EXTA                              = 0x4b00
++	EXTATTR_CMD_START                 = 0x1
++	EXTATTR_CMD_STOP                  = 0x2
++	EXTATTR_NAMESPACE_SYSTEM          = 0x2
++	EXTATTR_NAMESPACE_USER            = 0x1
+ 	EXTB                              = 0x9600
+ 	EXTPROC                           = 0x800
+ 	FD_CLOEXEC                        = 0x1
+@@ -563,6 +570,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -952,6 +960,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -988,6 +1000,43 @@ const (
+ 	MAP_STACK                         = 0x2000
+ 	MAP_TRYFIXED                      = 0x400
+ 	MAP_WIRED                         = 0x800
++	MNT_ASYNC                         = 0x40
++	MNT_BASIC_FLAGS                   = 0xe782807f
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DISCARD                       = 0x800000
++	MNT_EXKERB                        = 0x800
++	MNT_EXNORESPORT                   = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXPUBLIC                      = 0x10000000
++	MNT_EXRDONLY                      = 0x80
++	MNT_EXTATTR                       = 0x1000000
++	MNT_FORCE                         = 0x80000
++	MNT_GETARGS                       = 0x400000
++	MNT_IGNORE                        = 0x100000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_LOG                           = 0x2000000
++	MNT_NOATIME                       = 0x4000000
++	MNT_NOCOREDUMP                    = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NODEVMTIME                    = 0x40000000
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_OP_FLAGS                      = 0x4d0000
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELATIME                      = 0x20000
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x80000000
++	MNT_SYMPERM                       = 0x20000000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UNION                         = 0x20
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0xff90ffff
++	MNT_WAIT                          = 0x1
+ 	MSG_BCAST                         = 0x100
+ 	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CONTROLMBUF                   = 0x2000000
+@@ -1016,6 +1065,7 @@ const (
+ 	NET_RT_MAXID                      = 0x6
+ 	NET_RT_OIFLIST                    = 0x4
+ 	NET_RT_OOIFLIST                   = 0x3
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
+ 	NOTE_ATTRIB                       = 0x8
+ 	NOTE_CHILD                        = 0x4
+@@ -1081,7 +1131,10 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
+@@ -1555,137 +1608,145 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large or too small"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol option not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "connection timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EILSEQ", "illegal byte sequence"},
++	{86, "ENOTSUP", "not supported"},
++	{87, "ECANCELED", "operation Canceled"},
++	{88, "EBADMSG", "bad or Corrupt message"},
++	{89, "ENODATA", "no message available"},
++	{90, "ENOSR", "no STREAM resources"},
++	{91, "ENOSTR", "not a STREAM"},
++	{92, "ETIME", "STREAM ioctl timeout"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EMULTIHOP", "multihop attempted"},
++	{95, "ENOLINK", "link has been severed"},
++	{96, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGPWR", "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_arm64.go
+similarity index 89%
+copy from vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+index 4994437b..f1c146a7 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build amd64,netbsd
++// +build arm64,netbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -159,6 +159,7 @@ const (
+ 	CLONE_VFORK                       = 0x4000
+ 	CLONE_VM                          = 0x100
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -169,6 +170,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	CTL_QUERY                         = -0x2
+@@ -537,6 +540,10 @@ const (
+ 	EV_ONESHOT                        = 0x10
+ 	EV_SYSFLAGS                       = 0xf000
+ 	EXTA                              = 0x4b00
++	EXTATTR_CMD_START                 = 0x1
++	EXTATTR_CMD_STOP                  = 0x2
++	EXTATTR_NAMESPACE_SYSTEM          = 0x2
++	EXTATTR_NAMESPACE_USER            = 0x1
+ 	EXTB                              = 0x9600
+ 	EXTPROC                           = 0x800
+ 	FD_CLOEXEC                        = 0x1
+@@ -571,6 +578,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -960,6 +968,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+ 	LOCK_SH                           = 0x1
+@@ -998,6 +1010,43 @@ const (
+ 	MAP_WIRED                         = 0x800
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_BASIC_FLAGS                   = 0xe782807f
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DISCARD                       = 0x800000
++	MNT_EXKERB                        = 0x800
++	MNT_EXNORESPORT                   = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXPUBLIC                      = 0x10000000
++	MNT_EXRDONLY                      = 0x80
++	MNT_EXTATTR                       = 0x1000000
++	MNT_FORCE                         = 0x80000
++	MNT_GETARGS                       = 0x400000
++	MNT_IGNORE                        = 0x100000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_LOG                           = 0x2000000
++	MNT_NOATIME                       = 0x4000000
++	MNT_NOCOREDUMP                    = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NODEVMTIME                    = 0x40000000
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_OP_FLAGS                      = 0x4d0000
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELATIME                      = 0x20000
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x80000000
++	MNT_SYMPERM                       = 0x20000000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UNION                         = 0x20
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0xff90ffff
++	MNT_WAIT                          = 0x1
+ 	MSG_BCAST                         = 0x100
+ 	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CONTROLMBUF                   = 0x2000000
+@@ -1026,6 +1075,7 @@ const (
+ 	NET_RT_MAXID                      = 0x6
+ 	NET_RT_OIFLIST                    = 0x4
+ 	NET_RT_OOIFLIST                   = 0x3
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
+ 	NOTE_ATTRIB                       = 0x8
+ 	NOTE_CHILD                        = 0x4
+@@ -1091,7 +1141,10 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
+@@ -1566,137 +1619,145 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large or too small"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol option not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "connection timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disc quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC prog. not avail"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIDRM", "identifier removed"},
++	{83, "ENOMSG", "no message of desired type"},
++	{84, "EOVERFLOW", "value too large to be stored in data type"},
++	{85, "EILSEQ", "illegal byte sequence"},
++	{86, "ENOTSUP", "not supported"},
++	{87, "ECANCELED", "operation Canceled"},
++	{88, "EBADMSG", "bad or Corrupt message"},
++	{89, "ENODATA", "no message available"},
++	{90, "ENOSR", "no STREAM resources"},
++	{91, "ENOSTR", "not a STREAM"},
++	{92, "ETIME", "STREAM ioctl timeout"},
++	{93, "ENOATTR", "attribute not found"},
++	{94, "EMULTIHOP", "multihop attempted"},
++	{95, "ENOLINK", "link has been severed"},
++	{96, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGIOT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "stopped (signal)"},
++	{18, "SIGTSTP", "stopped"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGPWR", "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
+index 3322e998..5402bd55 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m32
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,openbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m32 _const.go
+ 
+ package unix
+@@ -147,6 +147,7 @@ const (
+ 	CFLUSH                            = 0xf
+ 	CLOCAL                            = 0x8000
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -157,6 +158,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DIOCOSFPFLUSH                     = 0x2000444e
+@@ -442,6 +445,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -860,6 +864,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LCNT_OVERLOAD_FLUSH               = 0x6
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+@@ -873,14 +881,15 @@ const (
+ 	MADV_SPACEAVAIL                   = 0x5
+ 	MADV_WILLNEED                     = 0x3
+ 	MAP_ANON                          = 0x1000
+-	MAP_COPY                          = 0x4
++	MAP_ANONYMOUS                     = 0x1000
++	MAP_CONCEAL                       = 0x8000
++	MAP_COPY                          = 0x2
+ 	MAP_FILE                          = 0x0
+ 	MAP_FIXED                         = 0x10
+-	MAP_FLAGMASK                      = 0x1ff7
+-	MAP_HASSEMAPHORE                  = 0x200
+-	MAP_INHERIT                       = 0x80
++	MAP_FLAGMASK                      = 0xfff7
++	MAP_HASSEMAPHORE                  = 0x0
++	MAP_INHERIT                       = 0x0
+ 	MAP_INHERIT_COPY                  = 0x1
+-	MAP_INHERIT_DONATE_COPY           = 0x3
+ 	MAP_INHERIT_NONE                  = 0x2
+ 	MAP_INHERIT_SHARE                 = 0x0
+ 	MAP_NOEXTEND                      = 0x100
+@@ -888,9 +897,36 @@ const (
+ 	MAP_PRIVATE                       = 0x2
+ 	MAP_RENAME                        = 0x20
+ 	MAP_SHARED                        = 0x1
+-	MAP_TRYFIXED                      = 0x400
++	MAP_STACK                         = 0x4000
++	MAP_TRYFIXED                      = 0x0
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DELEXPORT                     = 0x20000
++	MNT_DOOMED                        = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXRDONLY                      = 0x80
++	MNT_FORCE                         = 0x80000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_NOATIME                       = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x4000000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0x400ffff
++	MNT_WAIT                          = 0x1
++	MNT_WANTRDWR                      = 0x2000000
++	MNT_WXALLOWED                     = 0x800
+ 	MSG_BCAST                         = 0x100
+ 	MSG_CTRUNC                        = 0x20
+ 	MSG_DONTROUTE                     = 0x4
+@@ -912,6 +948,7 @@ const (
+ 	NET_RT_MAXID                      = 0x6
+ 	NET_RT_STATS                      = 0x4
+ 	NET_RT_TABLE                      = 0x5
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
+ 	NOTE_ATTRIB                       = 0x8
+ 	NOTE_CHILD                        = 0x4
+@@ -1210,6 +1247,34 @@ const (
+ 	SO_TIMESTAMP                      = 0x800
+ 	SO_TYPE                           = 0x1008
+ 	SO_USELOOPBACK                    = 0x40
++	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_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
+@@ -1453,132 +1518,140 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EWOULDBLOCK", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disk quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC program not available"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIPSEC", "IPsec processing failure"},
++	{83, "ENOATTR", "attribute not found"},
++	{84, "EILSEQ", "illegal byte sequence"},
++	{85, "ENOMEDIUM", "no medium found"},
++	{86, "EMEDIUMTYPE", "wrong medium type"},
++	{87, "EOVERFLOW", "value too large to be stored in data type"},
++	{88, "ECANCELED", "operation canceled"},
++	{89, "EIDRM", "identifier removed"},
++	{90, "ENOMSG", "no message of desired type"},
++	{91, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "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
+index 1758ecca..ffaf2d2f 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,openbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -45,6 +45,7 @@ const (
+ 	AF_SNA                            = 0xb
+ 	AF_UNIX                           = 0x1
+ 	AF_UNSPEC                         = 0x0
++	ALTWERASE                         = 0x200
+ 	ARPHRD_ETHER                      = 0x1
+ 	ARPHRD_FRELAY                     = 0xf
+ 	ARPHRD_IEEE1394                   = 0x18
+@@ -146,7 +147,14 @@ const (
+ 	BRKINT                            = 0x2
+ 	CFLUSH                            = 0xf
+ 	CLOCAL                            = 0x8000
++	CLOCK_BOOTTIME                    = 0x6
++	CLOCK_MONOTONIC                   = 0x3
++	CLOCK_PROCESS_CPUTIME_ID          = 0x2
++	CLOCK_REALTIME                    = 0x0
++	CLOCK_THREAD_CPUTIME_ID           = 0x4
++	CLOCK_UPTIME                      = 0x5
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -157,6 +165,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DIOCOSFPFLUSH                     = 0x2000444e
+@@ -175,6 +185,7 @@ const (
+ 	DLT_LOOP                          = 0xc
+ 	DLT_MPLS                          = 0xdb
+ 	DLT_NULL                          = 0x0
++	DLT_OPENFLOW                      = 0x10b
+ 	DLT_PFLOG                         = 0x75
+ 	DLT_PFSYNC                        = 0x12
+ 	DLT_PPP                           = 0x9
+@@ -185,6 +196,23 @@ const (
+ 	DLT_RAW                           = 0xe
+ 	DLT_SLIP                          = 0x8
+ 	DLT_SLIP_BSDOS                    = 0xf
++	DLT_USBPCAP                       = 0xf9
++	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
+ 	DT_BLK                            = 0x6
+ 	DT_CHR                            = 0x2
+ 	DT_DIR                            = 0x4
+@@ -398,27 +426,38 @@ const (
+ 	ETHER_CRC_POLY_LE                 = 0xedb88320
+ 	ETHER_HDR_LEN                     = 0xe
+ 	ETHER_MAX_DIX_LEN                 = 0x600
++	ETHER_MAX_HARDMTU_LEN             = 0xff9b
+ 	ETHER_MAX_LEN                     = 0x5ee
+ 	ETHER_MIN_LEN                     = 0x40
+ 	ETHER_TYPE_LEN                    = 0x2
+ 	ETHER_VLAN_ENCAP_LEN              = 0x4
+ 	EVFILT_AIO                        = -0x3
++	EVFILT_DEVICE                     = -0x8
+ 	EVFILT_PROC                       = -0x5
+ 	EVFILT_READ                       = -0x1
+ 	EVFILT_SIGNAL                     = -0x6
+-	EVFILT_SYSCOUNT                   = 0x7
++	EVFILT_SYSCOUNT                   = 0x8
+ 	EVFILT_TIMER                      = -0x7
+ 	EVFILT_VNODE                      = -0x4
+ 	EVFILT_WRITE                      = -0x2
++	EVL_ENCAPLEN                      = 0x4
++	EVL_PRIO_BITS                     = 0xd
++	EVL_PRIO_MAX                      = 0x7
++	EVL_VLID_MASK                     = 0xfff
++	EVL_VLID_MAX                      = 0xffe
++	EVL_VLID_MIN                      = 0x1
++	EVL_VLID_NULL                     = 0x0
+ 	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_FLAG1                          = 0x2000
+ 	EV_ONESHOT                        = 0x10
++	EV_RECEIPT                        = 0x40
+ 	EV_SYSFLAGS                       = 0xf000
+ 	EXTA                              = 0x4b00
+ 	EXTB                              = 0x9600
+@@ -432,6 +471,7 @@ const (
+ 	F_GETFL                           = 0x3
+ 	F_GETLK                           = 0x7
+ 	F_GETOWN                          = 0x5
++	F_ISATTY                          = 0xb
+ 	F_OK                              = 0x0
+ 	F_RDLCK                           = 0x1
+ 	F_SETFD                           = 0x2
+@@ -442,13 +482,13 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	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
+@@ -459,12 +499,12 @@ const (
+ 	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_STATICARP                     = 0x20
+ 	IFF_UP                            = 0x1
+ 	IFNAMSIZ                          = 0x10
+ 	IFT_1822                          = 0x2
+@@ -593,6 +633,7 @@ const (
+ 	IFT_LINEGROUP                     = 0xd2
+ 	IFT_LOCALTALK                     = 0x2a
+ 	IFT_LOOP                          = 0x18
++	IFT_MBIM                          = 0xfa
+ 	IFT_MEDIAMAILOVERIP               = 0x8b
+ 	IFT_MFSIGLINK                     = 0xa7
+ 	IFT_MIOX25                        = 0x26
+@@ -717,8 +758,6 @@ const (
+ 	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
+@@ -775,6 +814,7 @@ const (
+ 	IPV6_LEAVE_GROUP                  = 0xd
+ 	IPV6_MAXHLIM                      = 0xff
+ 	IPV6_MAXPACKET                    = 0xffff
++	IPV6_MINHOPCOUNT                  = 0x41
+ 	IPV6_MMTU                         = 0x500
+ 	IPV6_MULTICAST_HOPS               = 0xa
+ 	IPV6_MULTICAST_IF                 = 0x9
+@@ -814,12 +854,12 @@ const (
+ 	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_IPDEFTTL                       = 0x25
+ 	IP_IPSECFLOWINFO                  = 0x24
+ 	IP_IPSEC_LOCAL_AUTH               = 0x1b
+ 	IP_IPSEC_LOCAL_CRED               = 0x19
+@@ -853,13 +893,19 @@ const (
+ 	IP_RETOPTS                        = 0x8
+ 	IP_RF                             = 0x8000
+ 	IP_RTABLE                         = 0x1021
++	IP_SENDSRCADDR                    = 0x7
+ 	IP_TOS                            = 0x3
+ 	IP_TTL                            = 0x4
+ 	ISIG                              = 0x80
+ 	ISTRIP                            = 0x20
++	IUCLC                             = 0x1000
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LCNT_OVERLOAD_FLUSH               = 0x6
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+@@ -873,25 +919,57 @@ const (
+ 	MADV_SPACEAVAIL                   = 0x5
+ 	MADV_WILLNEED                     = 0x3
+ 	MAP_ANON                          = 0x1000
+-	MAP_COPY                          = 0x4
++	MAP_ANONYMOUS                     = 0x1000
++	MAP_CONCEAL                       = 0x8000
++	MAP_COPY                          = 0x2
+ 	MAP_FILE                          = 0x0
+ 	MAP_FIXED                         = 0x10
+-	MAP_FLAGMASK                      = 0x1ff7
+-	MAP_HASSEMAPHORE                  = 0x200
+-	MAP_INHERIT                       = 0x80
++	MAP_FLAGMASK                      = 0xfff7
++	MAP_HASSEMAPHORE                  = 0x0
++	MAP_INHERIT                       = 0x0
+ 	MAP_INHERIT_COPY                  = 0x1
+-	MAP_INHERIT_DONATE_COPY           = 0x3
+ 	MAP_INHERIT_NONE                  = 0x2
+ 	MAP_INHERIT_SHARE                 = 0x0
+-	MAP_NOEXTEND                      = 0x100
+-	MAP_NORESERVE                     = 0x40
++	MAP_INHERIT_ZERO                  = 0x3
++	MAP_NOEXTEND                      = 0x0
++	MAP_NORESERVE                     = 0x0
+ 	MAP_PRIVATE                       = 0x2
+-	MAP_RENAME                        = 0x20
++	MAP_RENAME                        = 0x0
+ 	MAP_SHARED                        = 0x1
+-	MAP_TRYFIXED                      = 0x400
++	MAP_STACK                         = 0x4000
++	MAP_TRYFIXED                      = 0x0
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DELEXPORT                     = 0x20000
++	MNT_DOOMED                        = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXRDONLY                      = 0x80
++	MNT_FORCE                         = 0x80000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_NOATIME                       = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NOEXEC                        = 0x4
++	MNT_NOPERM                        = 0x20
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x4000000
++	MNT_STALLED                       = 0x100000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0x400ffff
++	MNT_WAIT                          = 0x1
++	MNT_WANTRDWR                      = 0x2000000
++	MNT_WXALLOWED                     = 0x800
+ 	MSG_BCAST                         = 0x100
++	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CTRUNC                        = 0x20
+ 	MSG_DONTROUTE                     = 0x4
+ 	MSG_DONTWAIT                      = 0x80
+@@ -909,11 +987,15 @@ const (
+ 	NET_RT_DUMP                       = 0x1
+ 	NET_RT_FLAGS                      = 0x2
+ 	NET_RT_IFLIST                     = 0x3
+-	NET_RT_MAXID                      = 0x6
++	NET_RT_IFNAMES                    = 0x6
++	NET_RT_MAXID                      = 0x7
+ 	NET_RT_STATS                      = 0x4
+ 	NET_RT_TABLE                      = 0x5
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
++	NOKERNINFO                        = 0x2000000
+ 	NOTE_ATTRIB                       = 0x8
++	NOTE_CHANGE                       = 0x1
+ 	NOTE_CHILD                        = 0x4
+ 	NOTE_DELETE                       = 0x1
+ 	NOTE_EOF                          = 0x2
+@@ -932,11 +1014,13 @@ const (
+ 	NOTE_TRUNCATE                     = 0x80
+ 	NOTE_WRITE                        = 0x2
+ 	OCRNL                             = 0x10
++	OLCUC                             = 0x20
+ 	ONLCR                             = 0x2
+ 	ONLRET                            = 0x80
+ 	ONOCR                             = 0x40
+ 	ONOEOT                            = 0x8
+ 	OPOST                             = 0x1
++	OXTABS                            = 0x4
+ 	O_ACCMODE                         = 0x3
+ 	O_APPEND                          = 0x8
+ 	O_ASYNC                           = 0x40
+@@ -974,23 +1058,32 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
++	RTAX_BFD                          = 0xb
+ 	RTAX_BRD                          = 0x7
++	RTAX_DNS                          = 0xc
+ 	RTAX_DST                          = 0x0
+ 	RTAX_GATEWAY                      = 0x1
+ 	RTAX_GENMASK                      = 0x3
+ 	RTAX_IFA                          = 0x5
+ 	RTAX_IFP                          = 0x4
+ 	RTAX_LABEL                        = 0xa
+-	RTAX_MAX                          = 0xb
++	RTAX_MAX                          = 0xf
+ 	RTAX_NETMASK                      = 0x2
++	RTAX_SEARCH                       = 0xe
+ 	RTAX_SRC                          = 0x8
+ 	RTAX_SRCMASK                      = 0x9
++	RTAX_STATIC                       = 0xd
+ 	RTA_AUTHOR                        = 0x40
++	RTA_BFD                           = 0x800
+ 	RTA_BRD                           = 0x80
++	RTA_DNS                           = 0x1000
+ 	RTA_DST                           = 0x1
+ 	RTA_GATEWAY                       = 0x2
+ 	RTA_GENMASK                       = 0x8
+@@ -998,34 +1091,39 @@ const (
+ 	RTA_IFP                           = 0x10
+ 	RTA_LABEL                         = 0x400
+ 	RTA_NETMASK                       = 0x4
++	RTA_SEARCH                        = 0x4000
+ 	RTA_SRC                           = 0x100
+ 	RTA_SRCMASK                       = 0x200
++	RTA_STATIC                        = 0x2000
+ 	RTF_ANNOUNCE                      = 0x4000
++	RTF_BFD                           = 0x1000000
+ 	RTF_BLACKHOLE                     = 0x1000
++	RTF_BROADCAST                     = 0x400000
++	RTF_CACHED                        = 0x20000
+ 	RTF_CLONED                        = 0x10000
+ 	RTF_CLONING                       = 0x100
++	RTF_CONNECTED                     = 0x800000
+ 	RTF_DONE                          = 0x40
+ 	RTF_DYNAMIC                       = 0x10
+-	RTF_FMASK                         = 0x10f808
++	RTF_FMASK                         = 0x110fc08
+ 	RTF_GATEWAY                       = 0x2
+ 	RTF_HOST                          = 0x4
+ 	RTF_LLINFO                        = 0x400
+-	RTF_MASK                          = 0x80
++	RTF_LOCAL                         = 0x200000
+ 	RTF_MODIFIED                      = 0x20
+ 	RTF_MPATH                         = 0x40000
+ 	RTF_MPLS                          = 0x100000
++	RTF_MULTICAST                     = 0x200
+ 	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_BFD                           = 0x12
+ 	RTM_CHANGE                        = 0x3
+ 	RTM_DELADDR                       = 0xd
+ 	RTM_DELETE                        = 0x2
+@@ -1033,11 +1131,13 @@ const (
+ 	RTM_GET                           = 0x4
+ 	RTM_IFANNOUNCE                    = 0xf
+ 	RTM_IFINFO                        = 0xe
++	RTM_INVALIDATE                    = 0x11
+ 	RTM_LOCK                          = 0x8
+ 	RTM_LOSING                        = 0x5
+ 	RTM_MAXSIZE                       = 0x800
+ 	RTM_MISS                          = 0x7
+ 	RTM_NEWADDR                       = 0xc
++	RTM_PROPOSAL                      = 0x13
+ 	RTM_REDIRECT                      = 0x6
+ 	RTM_RESOLVE                       = 0xb
+ 	RTM_RTTUNIT                       = 0xf4240
+@@ -1050,6 +1150,8 @@ const (
+ 	RTV_RTTVAR                        = 0x80
+ 	RTV_SPIPE                         = 0x10
+ 	RTV_SSTHRESH                      = 0x20
++	RT_TABLEID_BITS                   = 0x8
++	RT_TABLEID_MASK                   = 0xff
+ 	RT_TABLEID_MAX                    = 0xff
+ 	RUSAGE_CHILDREN                   = -0x1
+ 	RUSAGE_SELF                       = 0x0
+@@ -1062,55 +1164,55 @@ const (
+ 	SIOCADDMULTI                      = 0x80206931
+ 	SIOCAIFADDR                       = 0x8040691a
+ 	SIOCAIFGROUP                      = 0x80286987
+-	SIOCALIFADDR                      = 0x8218691c
+ 	SIOCATMARK                        = 0x40047307
+-	SIOCBRDGADD                       = 0x8058693c
+-	SIOCBRDGADDS                      = 0x80586941
+-	SIOCBRDGARL                       = 0x806e694d
++	SIOCBRDGADD                       = 0x8060693c
++	SIOCBRDGADDL                      = 0x80606949
++	SIOCBRDGADDS                      = 0x80606941
++	SIOCBRDGARL                       = 0x808c694d
+ 	SIOCBRDGDADDR                     = 0x81286947
+-	SIOCBRDGDEL                       = 0x8058693d
+-	SIOCBRDGDELS                      = 0x80586942
+-	SIOCBRDGFLUSH                     = 0x80586948
+-	SIOCBRDGFRL                       = 0x806e694e
+-	SIOCBRDGGCACHE                    = 0xc0146941
+-	SIOCBRDGGFD                       = 0xc0146952
+-	SIOCBRDGGHT                       = 0xc0146951
+-	SIOCBRDGGIFFLGS                   = 0xc058693e
+-	SIOCBRDGGMA                       = 0xc0146953
++	SIOCBRDGDEL                       = 0x8060693d
++	SIOCBRDGDELS                      = 0x80606942
++	SIOCBRDGFLUSH                     = 0x80606948
++	SIOCBRDGFRL                       = 0x808c694e
++	SIOCBRDGGCACHE                    = 0xc0186941
++	SIOCBRDGGFD                       = 0xc0186952
++	SIOCBRDGGHT                       = 0xc0186951
++	SIOCBRDGGIFFLGS                   = 0xc060693e
++	SIOCBRDGGMA                       = 0xc0186953
+ 	SIOCBRDGGPARAM                    = 0xc0406958
+-	SIOCBRDGGPRI                      = 0xc0146950
++	SIOCBRDGGPRI                      = 0xc0186950
+ 	SIOCBRDGGRL                       = 0xc030694f
+-	SIOCBRDGGSIFS                     = 0xc058693c
+-	SIOCBRDGGTO                       = 0xc0146946
+-	SIOCBRDGIFS                       = 0xc0586942
++	SIOCBRDGGTO                       = 0xc0186946
++	SIOCBRDGIFS                       = 0xc0606942
+ 	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
++	SIOCBRDGSCACHE                    = 0x80186940
++	SIOCBRDGSFD                       = 0x80186952
++	SIOCBRDGSHT                       = 0x80186951
++	SIOCBRDGSIFCOST                   = 0x80606955
++	SIOCBRDGSIFFLGS                   = 0x8060693f
++	SIOCBRDGSIFPRIO                   = 0x80606954
++	SIOCBRDGSIFPROT                   = 0x8060694a
++	SIOCBRDGSMA                       = 0x80186953
++	SIOCBRDGSPRI                      = 0x80186950
++	SIOCBRDGSPROTO                    = 0x8018695a
++	SIOCBRDGSTO                       = 0x80186945
++	SIOCBRDGSTXHC                     = 0x80186959
+ 	SIOCDELMULTI                      = 0x80206932
+ 	SIOCDIFADDR                       = 0x80206919
+ 	SIOCDIFGROUP                      = 0x80286989
++	SIOCDIFPARENT                     = 0x802069b4
+ 	SIOCDIFPHYADDR                    = 0x80206949
+-	SIOCDLIFADDR                      = 0x8218691e
++	SIOCDVNETID                       = 0x802069af
+ 	SIOCGETKALIVE                     = 0xc01869a4
+ 	SIOCGETLABEL                      = 0x8020699a
++	SIOCGETMPWCFG                     = 0xc02069ae
+ 	SIOCGETPFLOW                      = 0xc02069fe
+ 	SIOCGETPFSYNC                     = 0xc02069f8
+ 	SIOCGETSGCNT                      = 0xc0207534
+ 	SIOCGETVIFCNT                     = 0xc0287533
+ 	SIOCGETVLAN                       = 0xc0206990
+-	SIOCGHIWAT                        = 0x40047301
+ 	SIOCGIFADDR                       = 0xc0206921
+-	SIOCGIFASYNCMAP                   = 0xc020697c
+ 	SIOCGIFBRDADDR                    = 0xc0206923
+ 	SIOCGIFCONF                       = 0xc0106924
+ 	SIOCGIFDATA                       = 0xc020691b
+@@ -1122,37 +1224,41 @@ const (
+ 	SIOCGIFGMEMB                      = 0xc028698a
+ 	SIOCGIFGROUP                      = 0xc0286988
+ 	SIOCGIFHARDMTU                    = 0xc02069a5
+-	SIOCGIFMEDIA                      = 0xc0306936
++	SIOCGIFLLPRIO                     = 0xc02069b6
++	SIOCGIFMEDIA                      = 0xc0406938
+ 	SIOCGIFMETRIC                     = 0xc0206917
+ 	SIOCGIFMTU                        = 0xc020697e
+ 	SIOCGIFNETMASK                    = 0xc0206925
+-	SIOCGIFPDSTADDR                   = 0xc0206948
++	SIOCGIFPAIR                       = 0xc02069b1
++	SIOCGIFPARENT                     = 0xc02069b3
+ 	SIOCGIFPRIORITY                   = 0xc020699c
+-	SIOCGIFPSRCADDR                   = 0xc0206947
+ 	SIOCGIFRDOMAIN                    = 0xc02069a0
+ 	SIOCGIFRTLABEL                    = 0xc0206983
+-	SIOCGIFTIMESLOT                   = 0xc0206986
++	SIOCGIFRXR                        = 0x802069aa
+ 	SIOCGIFXFLAGS                     = 0xc020699e
+-	SIOCGLIFADDR                      = 0xc218691d
+ 	SIOCGLIFPHYADDR                   = 0xc218694b
++	SIOCGLIFPHYDF                     = 0xc02069c2
+ 	SIOCGLIFPHYRTABLE                 = 0xc02069a2
+ 	SIOCGLIFPHYTTL                    = 0xc02069a9
+-	SIOCGLOWAT                        = 0x40047303
+ 	SIOCGPGRP                         = 0x40047309
+ 	SIOCGSPPPPARAMS                   = 0xc0206994
++	SIOCGUMBINFO                      = 0xc02069be
++	SIOCGUMBPARAM                     = 0xc02069c0
+ 	SIOCGVH                           = 0xc02069f6
++	SIOCGVNETFLOWID                   = 0xc02069c4
+ 	SIOCGVNETID                       = 0xc02069a7
++	SIOCIFAFATTACH                    = 0x801169ab
++	SIOCIFAFDETACH                    = 0x801169ac
+ 	SIOCIFCREATE                      = 0x8020697a
+ 	SIOCIFDESTROY                     = 0x80206979
+ 	SIOCIFGCLONERS                    = 0xc0106978
+ 	SIOCSETKALIVE                     = 0x801869a3
+ 	SIOCSETLABEL                      = 0x80206999
++	SIOCSETMPWCFG                     = 0x802069ad
+ 	SIOCSETPFLOW                      = 0x802069fd
+ 	SIOCSETPFSYNC                     = 0x802069f7
+ 	SIOCSETVLAN                       = 0x8020698f
+-	SIOCSHIWAT                        = 0x80047300
+ 	SIOCSIFADDR                       = 0x8020690c
+-	SIOCSIFASYNCMAP                   = 0x8020697d
+ 	SIOCSIFBRDADDR                    = 0x80206913
+ 	SIOCSIFDESCR                      = 0x80206980
+ 	SIOCSIFDSTADDR                    = 0x8020690e
+@@ -1160,25 +1266,36 @@ const (
+ 	SIOCSIFGATTR                      = 0x8028698c
+ 	SIOCSIFGENERIC                    = 0x80206939
+ 	SIOCSIFLLADDR                     = 0x8020691f
+-	SIOCSIFMEDIA                      = 0xc0206935
++	SIOCSIFLLPRIO                     = 0x802069b5
++	SIOCSIFMEDIA                      = 0xc0206937
+ 	SIOCSIFMETRIC                     = 0x80206918
+ 	SIOCSIFMTU                        = 0x8020697f
+ 	SIOCSIFNETMASK                    = 0x80206916
+-	SIOCSIFPHYADDR                    = 0x80406946
++	SIOCSIFPAIR                       = 0x802069b0
++	SIOCSIFPARENT                     = 0x802069b2
+ 	SIOCSIFPRIORITY                   = 0x8020699b
+ 	SIOCSIFRDOMAIN                    = 0x8020699f
+ 	SIOCSIFRTLABEL                    = 0x80206982
+-	SIOCSIFTIMESLOT                   = 0x80206985
+ 	SIOCSIFXFLAGS                     = 0x8020699d
+ 	SIOCSLIFPHYADDR                   = 0x8218694a
++	SIOCSLIFPHYDF                     = 0x802069c1
+ 	SIOCSLIFPHYRTABLE                 = 0x802069a1
+ 	SIOCSLIFPHYTTL                    = 0x802069a8
+-	SIOCSLOWAT                        = 0x80047302
+ 	SIOCSPGRP                         = 0x80047308
+ 	SIOCSSPPPPARAMS                   = 0x80206993
++	SIOCSUMBPARAM                     = 0x802069bf
+ 	SIOCSVH                           = 0xc02069f5
++	SIOCSVNETFLOWID                   = 0x802069c3
+ 	SIOCSVNETID                       = 0x802069a6
++	SIOCSWGDPID                       = 0xc018695b
++	SIOCSWGMAXFLOW                    = 0xc0186960
++	SIOCSWGMAXGROUP                   = 0xc018695d
++	SIOCSWSDPID                       = 0x8018695c
++	SIOCSWSPORTNO                     = 0xc060695f
++	SOCK_CLOEXEC                      = 0x8000
+ 	SOCK_DGRAM                        = 0x2
++	SOCK_DNS                          = 0x1000
++	SOCK_NONBLOCK                     = 0x4000
+ 	SOCK_RAW                          = 0x3
+ 	SOCK_RDM                          = 0x4
+ 	SOCK_SEQPACKET                    = 0x5
+@@ -1209,9 +1326,42 @@ const (
+ 	SO_TIMESTAMP                      = 0x800
+ 	SO_TYPE                           = 0x1008
+ 	SO_USELOOPBACK                    = 0x40
++	SO_ZEROIZE                        = 0x2000
++	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_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
++	TCIOFF                            = 0x3
+ 	TCIOFLUSH                         = 0x3
++	TCION                             = 0x4
+ 	TCOFLUSH                          = 0x2
++	TCOOFF                            = 0x1
++	TCOON                             = 0x2
+ 	TCP_MAXBURST                      = 0x4
+ 	TCP_MAXSEG                        = 0x2
+ 	TCP_MAXWIN                        = 0xffff
+@@ -1221,11 +1371,12 @@ const (
+ 	TCP_MSS                           = 0x200
+ 	TCP_NODELAY                       = 0x1
+ 	TCP_NOPUSH                        = 0x10
+-	TCP_NSTATES                       = 0xb
+ 	TCP_SACK_ENABLE                   = 0x8
+ 	TCSAFLUSH                         = 0x2
+ 	TIOCCBRK                          = 0x2000747a
+ 	TIOCCDTR                          = 0x20007478
++	TIOCCHKVERAUTH                    = 0x2000741e
++	TIOCCLRVERAUTH                    = 0x2000741d
+ 	TIOCCONS                          = 0x80047462
+ 	TIOCDRAIN                         = 0x2000745e
+ 	TIOCEXCL                          = 0x2000740d
+@@ -1280,17 +1431,22 @@ const (
+ 	TIOCSETAF                         = 0x802c7416
+ 	TIOCSETAW                         = 0x802c7415
+ 	TIOCSETD                          = 0x8004741b
++	TIOCSETVERAUTH                    = 0x8004741c
+ 	TIOCSFLAGS                        = 0x8004745c
+ 	TIOCSIG                           = 0x8004745f
+ 	TIOCSPGRP                         = 0x80047476
+ 	TIOCSTART                         = 0x2000746e
+-	TIOCSTAT                          = 0x80047465
++	TIOCSTAT                          = 0x20007465
+ 	TIOCSTI                           = 0x80017472
+ 	TIOCSTOP                          = 0x2000746f
+ 	TIOCSTSTAMP                       = 0x8008745a
+ 	TIOCSWINSZ                        = 0x80087467
+ 	TIOCUCNTL                         = 0x80047466
++	TIOCUCNTL_CBRK                    = 0x7a
++	TIOCUCNTL_SBRK                    = 0x7b
+ 	TOSTOP                            = 0x400000
++	UTIME_NOW                         = -0x2
++	UTIME_OMIT                        = -0x1
+ 	VDISCARD                          = 0xf
+ 	VDSUSP                            = 0xb
+ 	VEOF                              = 0x0
+@@ -1301,6 +1457,18 @@ const (
+ 	VKILL                             = 0x5
+ 	VLNEXT                            = 0xe
+ 	VMIN                              = 0x10
++	VM_ANONMIN                        = 0x7
++	VM_LOADAVG                        = 0x2
++	VM_MAXID                          = 0xc
++	VM_MAXSLP                         = 0xa
++	VM_METER                          = 0x1
++	VM_NKMEMPAGES                     = 0x6
++	VM_PSSTRINGS                      = 0x3
++	VM_SWAPENCRYPT                    = 0x5
++	VM_USPACE                         = 0xb
++	VM_UVMEXP                         = 0x4
++	VM_VNODEMIN                       = 0x9
++	VM_VTEXTMIN                       = 0x8
+ 	VQUIT                             = 0x9
+ 	VREPRINT                          = 0x6
+ 	VSTART                            = 0xc
+@@ -1313,8 +1481,8 @@ const (
+ 	WCONTINUED                        = 0x8
+ 	WCOREFLAG                         = 0x80
+ 	WNOHANG                           = 0x1
+-	WSTOPPED                          = 0x7f
+ 	WUNTRACED                         = 0x2
++	XCASE                             = 0x1000000
+ )
+ 
+ // Errors
+@@ -1328,6 +1496,7 @@ const (
+ 	EALREADY        = syscall.Errno(0x25)
+ 	EAUTH           = syscall.Errno(0x50)
+ 	EBADF           = syscall.Errno(0x9)
++	EBADMSG         = syscall.Errno(0x5c)
+ 	EBADRPC         = syscall.Errno(0x48)
+ 	EBUSY           = syscall.Errno(0x10)
+ 	ECANCELED       = syscall.Errno(0x58)
+@@ -1354,7 +1523,7 @@ const (
+ 	EIPSEC          = syscall.Errno(0x52)
+ 	EISCONN         = syscall.Errno(0x38)
+ 	EISDIR          = syscall.Errno(0x15)
+-	ELAST           = syscall.Errno(0x5b)
++	ELAST           = syscall.Errno(0x5f)
+ 	ELOOP           = syscall.Errno(0x3e)
+ 	EMEDIUMTYPE     = syscall.Errno(0x56)
+ 	EMFILE          = syscall.Errno(0x18)
+@@ -1382,12 +1551,14 @@ const (
+ 	ENOTCONN        = syscall.Errno(0x39)
+ 	ENOTDIR         = syscall.Errno(0x14)
+ 	ENOTEMPTY       = syscall.Errno(0x42)
++	ENOTRECOVERABLE = syscall.Errno(0x5d)
+ 	ENOTSOCK        = syscall.Errno(0x26)
+ 	ENOTSUP         = syscall.Errno(0x5b)
+ 	ENOTTY          = syscall.Errno(0x19)
+ 	ENXIO           = syscall.Errno(0x6)
+ 	EOPNOTSUPP      = syscall.Errno(0x2d)
+ 	EOVERFLOW       = syscall.Errno(0x57)
++	EOWNERDEAD      = syscall.Errno(0x5e)
+ 	EPERM           = syscall.Errno(0x1)
+ 	EPFNOSUPPORT    = syscall.Errno(0x2e)
+ 	EPIPE           = syscall.Errno(0x20)
+@@ -1395,6 +1566,7 @@ const (
+ 	EPROCUNAVAIL    = syscall.Errno(0x4c)
+ 	EPROGMISMATCH   = syscall.Errno(0x4b)
+ 	EPROGUNAVAIL    = syscall.Errno(0x4a)
++	EPROTO          = syscall.Errno(0x5f)
+ 	EPROTONOSUPPORT = syscall.Errno(0x2b)
+ 	EPROTOTYPE      = syscall.Errno(0x29)
+ 	ERANGE          = syscall.Errno(0x22)
+@@ -1452,132 +1624,144 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disk quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC program not available"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIPSEC", "IPsec processing failure"},
++	{83, "ENOATTR", "attribute not found"},
++	{84, "EILSEQ", "illegal byte sequence"},
++	{85, "ENOMEDIUM", "no medium found"},
++	{86, "EMEDIUMTYPE", "wrong medium type"},
++	{87, "EOVERFLOW", "value too large to be stored in data type"},
++	{88, "ECANCELED", "operation canceled"},
++	{89, "EIDRM", "identifier removed"},
++	{90, "ENOMSG", "no message of desired type"},
++	{91, "ENOTSUP", "not supported"},
++	{92, "EBADMSG", "bad message"},
++	{93, "ENOTRECOVERABLE", "state not recoverable"},
++	{94, "EOWNERDEAD", "previous owner died"},
++	{95, "ELAST", "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: "thread AST",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "thread AST"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+index 3ed0b260..7aa796a6 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go
+@@ -1,11 +1,11 @@
+ // mkerrors.sh
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+-
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs -- _const.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,openbsd
+ 
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
++// cgo -godefs -- _const.go
++
+ package unix
+ 
+ import "syscall"
+@@ -147,6 +147,7 @@ const (
+ 	CFLUSH                            = 0xf
+ 	CLOCAL                            = 0x8000
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -157,6 +158,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DIOCOSFPFLUSH                     = 0x2000444e
+@@ -441,6 +444,7 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	ICANON                            = 0x100
+ 	ICMP6_FILTER                      = 0x12
+ 	ICRNL                             = 0x100
+@@ -859,6 +863,10 @@ const (
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LCNT_OVERLOAD_FLUSH               = 0x6
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+@@ -873,10 +881,11 @@ const (
+ 	MADV_WILLNEED                     = 0x3
+ 	MAP_ANON                          = 0x1000
+ 	MAP_ANONYMOUS                     = 0x1000
++	MAP_CONCEAL                       = 0x8000
+ 	MAP_COPY                          = 0x2
+ 	MAP_FILE                          = 0x0
+ 	MAP_FIXED                         = 0x10
+-	MAP_FLAGMASK                      = 0x3ff7
++	MAP_FLAGMASK                      = 0xfff7
+ 	MAP_HASSEMAPHORE                  = 0x0
+ 	MAP_INHERIT                       = 0x0
+ 	MAP_INHERIT_COPY                  = 0x1
+@@ -888,9 +897,36 @@ const (
+ 	MAP_PRIVATE                       = 0x2
+ 	MAP_RENAME                        = 0x0
+ 	MAP_SHARED                        = 0x1
++	MAP_STACK                         = 0x4000
+ 	MAP_TRYFIXED                      = 0x0
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DELEXPORT                     = 0x20000
++	MNT_DOOMED                        = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXRDONLY                      = 0x80
++	MNT_FORCE                         = 0x80000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_NOATIME                       = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NOEXEC                        = 0x4
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x4000000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0x400ffff
++	MNT_WAIT                          = 0x1
++	MNT_WANTRDWR                      = 0x2000000
++	MNT_WXALLOWED                     = 0x800
+ 	MSG_BCAST                         = 0x100
+ 	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CTRUNC                        = 0x20
+@@ -913,6 +949,7 @@ const (
+ 	NET_RT_MAXID                      = 0x6
+ 	NET_RT_STATS                      = 0x4
+ 	NET_RT_TABLE                      = 0x5
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
+ 	NOTE_ATTRIB                       = 0x8
+ 	NOTE_CHILD                        = 0x4
+@@ -1213,6 +1250,34 @@ const (
+ 	SO_TIMESTAMP                      = 0x800
+ 	SO_TYPE                           = 0x1008
+ 	SO_USELOOPBACK                    = 0x40
++	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_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
+@@ -1455,132 +1520,140 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EWOULDBLOCK", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disk quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC program not available"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIPSEC", "IPsec processing failure"},
++	{83, "ENOATTR", "attribute not found"},
++	{84, "EILSEQ", "illegal byte sequence"},
++	{85, "ENOMEDIUM", "no medium found"},
++	{86, "EMEDIUMTYPE", "wrong medium type"},
++	{87, "EOVERFLOW", "value too large to be stored in data type"},
++	{88, "ECANCELED", "operation canceled"},
++	{89, "EIDRM", "identifier removed"},
++	{90, "ENOMSG", "no message of desired type"},
++	{91, "ELAST", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "thread AST"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+similarity index 76%
+copy from vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+index 1758ecca..1792d3f1 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go
+@@ -1,9 +1,9 @@
+ // mkerrors.sh -m64
+-// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build amd64,openbsd
++// +build arm64,openbsd
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -45,6 +45,7 @@ const (
+ 	AF_SNA                            = 0xb
+ 	AF_UNIX                           = 0x1
+ 	AF_UNSPEC                         = 0x0
++	ALTWERASE                         = 0x200
+ 	ARPHRD_ETHER                      = 0x1
+ 	ARPHRD_FRELAY                     = 0xf
+ 	ARPHRD_IEEE1394                   = 0x18
+@@ -107,6 +108,9 @@ const (
+ 	BPF_DIRECTION_IN                  = 0x1
+ 	BPF_DIRECTION_OUT                 = 0x2
+ 	BPF_DIV                           = 0x30
++	BPF_FILDROP_CAPTURE               = 0x1
++	BPF_FILDROP_DROP                  = 0x2
++	BPF_FILDROP_PASS                  = 0x0
+ 	BPF_H                             = 0x8
+ 	BPF_IMM                           = 0x0
+ 	BPF_IND                           = 0x40
+@@ -146,7 +150,14 @@ const (
+ 	BRKINT                            = 0x2
+ 	CFLUSH                            = 0xf
+ 	CLOCAL                            = 0x8000
++	CLOCK_BOOTTIME                    = 0x6
++	CLOCK_MONOTONIC                   = 0x3
++	CLOCK_PROCESS_CPUTIME_ID          = 0x2
++	CLOCK_REALTIME                    = 0x0
++	CLOCK_THREAD_CPUTIME_ID           = 0x4
++	CLOCK_UPTIME                      = 0x5
+ 	CREAD                             = 0x800
++	CRTSCTS                           = 0x10000
+ 	CS5                               = 0x0
+ 	CS6                               = 0x100
+ 	CS7                               = 0x200
+@@ -157,6 +168,8 @@ const (
+ 	CSTOP                             = 0x13
+ 	CSTOPB                            = 0x400
+ 	CSUSP                             = 0x1a
++	CTL_HW                            = 0x6
++	CTL_KERN                          = 0x1
+ 	CTL_MAXNAME                       = 0xc
+ 	CTL_NET                           = 0x4
+ 	DIOCOSFPFLUSH                     = 0x2000444e
+@@ -175,6 +188,7 @@ const (
+ 	DLT_LOOP                          = 0xc
+ 	DLT_MPLS                          = 0xdb
+ 	DLT_NULL                          = 0x0
++	DLT_OPENFLOW                      = 0x10b
+ 	DLT_PFLOG                         = 0x75
+ 	DLT_PFSYNC                        = 0x12
+ 	DLT_PPP                           = 0x9
+@@ -185,6 +199,23 @@ const (
+ 	DLT_RAW                           = 0xe
+ 	DLT_SLIP                          = 0x8
+ 	DLT_SLIP_BSDOS                    = 0xf
++	DLT_USBPCAP                       = 0xf9
++	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
+ 	DT_BLK                            = 0x6
+ 	DT_CHR                            = 0x2
+ 	DT_DIR                            = 0x4
+@@ -324,6 +355,7 @@ const (
+ 	ETHERTYPE_OS9NET                  = 0x7009
+ 	ETHERTYPE_PACER                   = 0x80c6
+ 	ETHERTYPE_PAE                     = 0x888e
++	ETHERTYPE_PBB                     = 0x88e7
+ 	ETHERTYPE_PCS                     = 0x4242
+ 	ETHERTYPE_PLANNING                = 0x8044
+ 	ETHERTYPE_PPP                     = 0x880b
+@@ -398,27 +430,38 @@ const (
+ 	ETHER_CRC_POLY_LE                 = 0xedb88320
+ 	ETHER_HDR_LEN                     = 0xe
+ 	ETHER_MAX_DIX_LEN                 = 0x600
++	ETHER_MAX_HARDMTU_LEN             = 0xff9b
+ 	ETHER_MAX_LEN                     = 0x5ee
+ 	ETHER_MIN_LEN                     = 0x40
+ 	ETHER_TYPE_LEN                    = 0x2
+ 	ETHER_VLAN_ENCAP_LEN              = 0x4
+ 	EVFILT_AIO                        = -0x3
++	EVFILT_DEVICE                     = -0x8
+ 	EVFILT_PROC                       = -0x5
+ 	EVFILT_READ                       = -0x1
+ 	EVFILT_SIGNAL                     = -0x6
+-	EVFILT_SYSCOUNT                   = 0x7
++	EVFILT_SYSCOUNT                   = 0x8
+ 	EVFILT_TIMER                      = -0x7
+ 	EVFILT_VNODE                      = -0x4
+ 	EVFILT_WRITE                      = -0x2
++	EVL_ENCAPLEN                      = 0x4
++	EVL_PRIO_BITS                     = 0xd
++	EVL_PRIO_MAX                      = 0x7
++	EVL_VLID_MASK                     = 0xfff
++	EVL_VLID_MAX                      = 0xffe
++	EVL_VLID_MIN                      = 0x1
++	EVL_VLID_NULL                     = 0x0
+ 	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_FLAG1                          = 0x2000
+ 	EV_ONESHOT                        = 0x10
++	EV_RECEIPT                        = 0x40
+ 	EV_SYSFLAGS                       = 0xf000
+ 	EXTA                              = 0x4b00
+ 	EXTB                              = 0x9600
+@@ -432,6 +475,7 @@ const (
+ 	F_GETFL                           = 0x3
+ 	F_GETLK                           = 0x7
+ 	F_GETOWN                          = 0x5
++	F_ISATTY                          = 0xb
+ 	F_OK                              = 0x0
+ 	F_RDLCK                           = 0x1
+ 	F_SETFD                           = 0x2
+@@ -442,13 +486,13 @@ const (
+ 	F_UNLCK                           = 0x2
+ 	F_WRLCK                           = 0x3
+ 	HUPCL                             = 0x4000
++	HW_MACHINE                        = 0x1
+ 	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
+@@ -459,12 +503,12 @@ const (
+ 	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_STATICARP                     = 0x20
+ 	IFF_UP                            = 0x1
+ 	IFNAMSIZ                          = 0x10
+ 	IFT_1822                          = 0x2
+@@ -593,6 +637,7 @@ const (
+ 	IFT_LINEGROUP                     = 0xd2
+ 	IFT_LOCALTALK                     = 0x2a
+ 	IFT_LOOP                          = 0x18
++	IFT_MBIM                          = 0xfa
+ 	IFT_MEDIAMAILOVERIP               = 0x8b
+ 	IFT_MFSIGLINK                     = 0xa7
+ 	IFT_MIOX25                        = 0x26
+@@ -717,8 +762,6 @@ const (
+ 	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
+@@ -775,6 +818,7 @@ const (
+ 	IPV6_LEAVE_GROUP                  = 0xd
+ 	IPV6_MAXHLIM                      = 0xff
+ 	IPV6_MAXPACKET                    = 0xffff
++	IPV6_MINHOPCOUNT                  = 0x41
+ 	IPV6_MMTU                         = 0x500
+ 	IPV6_MULTICAST_HOPS               = 0xa
+ 	IPV6_MULTICAST_IF                 = 0x9
+@@ -814,12 +858,12 @@ const (
+ 	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_IPDEFTTL                       = 0x25
+ 	IP_IPSECFLOWINFO                  = 0x24
+ 	IP_IPSEC_LOCAL_AUTH               = 0x1b
+ 	IP_IPSEC_LOCAL_CRED               = 0x19
+@@ -853,13 +897,19 @@ const (
+ 	IP_RETOPTS                        = 0x8
+ 	IP_RF                             = 0x8000
+ 	IP_RTABLE                         = 0x1021
++	IP_SENDSRCADDR                    = 0x7
+ 	IP_TOS                            = 0x3
+ 	IP_TTL                            = 0x4
+ 	ISIG                              = 0x80
+ 	ISTRIP                            = 0x20
++	IUCLC                             = 0x1000
+ 	IXANY                             = 0x800
+ 	IXOFF                             = 0x400
+ 	IXON                              = 0x200
++	KERN_HOSTNAME                     = 0xa
++	KERN_OSRELEASE                    = 0x2
++	KERN_OSTYPE                       = 0x1
++	KERN_VERSION                      = 0x4
+ 	LCNT_OVERLOAD_FLUSH               = 0x6
+ 	LOCK_EX                           = 0x2
+ 	LOCK_NB                           = 0x4
+@@ -873,25 +923,58 @@ const (
+ 	MADV_SPACEAVAIL                   = 0x5
+ 	MADV_WILLNEED                     = 0x3
+ 	MAP_ANON                          = 0x1000
+-	MAP_COPY                          = 0x4
++	MAP_ANONYMOUS                     = 0x1000
++	MAP_CONCEAL                       = 0x8000
++	MAP_COPY                          = 0x2
+ 	MAP_FILE                          = 0x0
+ 	MAP_FIXED                         = 0x10
+-	MAP_FLAGMASK                      = 0x1ff7
+-	MAP_HASSEMAPHORE                  = 0x200
+-	MAP_INHERIT                       = 0x80
++	MAP_FLAGMASK                      = 0xfff7
++	MAP_HASSEMAPHORE                  = 0x0
++	MAP_INHERIT                       = 0x0
+ 	MAP_INHERIT_COPY                  = 0x1
+-	MAP_INHERIT_DONATE_COPY           = 0x3
+ 	MAP_INHERIT_NONE                  = 0x2
+ 	MAP_INHERIT_SHARE                 = 0x0
+-	MAP_NOEXTEND                      = 0x100
+-	MAP_NORESERVE                     = 0x40
++	MAP_INHERIT_ZERO                  = 0x3
++	MAP_NOEXTEND                      = 0x0
++	MAP_NORESERVE                     = 0x0
+ 	MAP_PRIVATE                       = 0x2
+-	MAP_RENAME                        = 0x20
++	MAP_RENAME                        = 0x0
+ 	MAP_SHARED                        = 0x1
+-	MAP_TRYFIXED                      = 0x400
++	MAP_STACK                         = 0x4000
++	MAP_TRYFIXED                      = 0x0
+ 	MCL_CURRENT                       = 0x1
+ 	MCL_FUTURE                        = 0x2
++	MNT_ASYNC                         = 0x40
++	MNT_DEFEXPORTED                   = 0x200
++	MNT_DELEXPORT                     = 0x20000
++	MNT_DOOMED                        = 0x8000000
++	MNT_EXPORTANON                    = 0x400
++	MNT_EXPORTED                      = 0x100
++	MNT_EXRDONLY                      = 0x80
++	MNT_FORCE                         = 0x80000
++	MNT_LAZY                          = 0x3
++	MNT_LOCAL                         = 0x1000
++	MNT_NOATIME                       = 0x8000
++	MNT_NODEV                         = 0x10
++	MNT_NOEXEC                        = 0x4
++	MNT_NOPERM                        = 0x20
++	MNT_NOSUID                        = 0x8
++	MNT_NOWAIT                        = 0x2
++	MNT_QUOTA                         = 0x2000
++	MNT_RDONLY                        = 0x1
++	MNT_RELOAD                        = 0x40000
++	MNT_ROOTFS                        = 0x4000
++	MNT_SOFTDEP                       = 0x4000000
++	MNT_STALLED                       = 0x100000
++	MNT_SWAPPABLE                     = 0x200000
++	MNT_SYNCHRONOUS                   = 0x2
++	MNT_UPDATE                        = 0x10000
++	MNT_VISFLAGMASK                   = 0x400ffff
++	MNT_WAIT                          = 0x1
++	MNT_WANTRDWR                      = 0x2000000
++	MNT_WXALLOWED                     = 0x800
+ 	MSG_BCAST                         = 0x100
++	MSG_CMSG_CLOEXEC                  = 0x800
+ 	MSG_CTRUNC                        = 0x20
+ 	MSG_DONTROUTE                     = 0x4
+ 	MSG_DONTWAIT                      = 0x80
+@@ -909,11 +992,15 @@ const (
+ 	NET_RT_DUMP                       = 0x1
+ 	NET_RT_FLAGS                      = 0x2
+ 	NET_RT_IFLIST                     = 0x3
+-	NET_RT_MAXID                      = 0x6
++	NET_RT_IFNAMES                    = 0x6
++	NET_RT_MAXID                      = 0x7
+ 	NET_RT_STATS                      = 0x4
+ 	NET_RT_TABLE                      = 0x5
++	NFDBITS                           = 0x20
+ 	NOFLSH                            = 0x80000000
++	NOKERNINFO                        = 0x2000000
+ 	NOTE_ATTRIB                       = 0x8
++	NOTE_CHANGE                       = 0x1
+ 	NOTE_CHILD                        = 0x4
+ 	NOTE_DELETE                       = 0x1
+ 	NOTE_EOF                          = 0x2
+@@ -932,11 +1019,13 @@ const (
+ 	NOTE_TRUNCATE                     = 0x80
+ 	NOTE_WRITE                        = 0x2
+ 	OCRNL                             = 0x10
++	OLCUC                             = 0x20
+ 	ONLCR                             = 0x2
+ 	ONLRET                            = 0x80
+ 	ONOCR                             = 0x40
+ 	ONOEOT                            = 0x8
+ 	OPOST                             = 0x1
++	OXTABS                            = 0x4
+ 	O_ACCMODE                         = 0x3
+ 	O_APPEND                          = 0x8
+ 	O_ASYNC                           = 0x40
+@@ -974,23 +1063,32 @@ const (
+ 	RLIMIT_CPU                        = 0x0
+ 	RLIMIT_DATA                       = 0x2
+ 	RLIMIT_FSIZE                      = 0x1
++	RLIMIT_MEMLOCK                    = 0x6
+ 	RLIMIT_NOFILE                     = 0x8
++	RLIMIT_NPROC                      = 0x7
++	RLIMIT_RSS                        = 0x5
+ 	RLIMIT_STACK                      = 0x3
+ 	RLIM_INFINITY                     = 0x7fffffffffffffff
+ 	RTAX_AUTHOR                       = 0x6
++	RTAX_BFD                          = 0xb
+ 	RTAX_BRD                          = 0x7
++	RTAX_DNS                          = 0xc
+ 	RTAX_DST                          = 0x0
+ 	RTAX_GATEWAY                      = 0x1
+ 	RTAX_GENMASK                      = 0x3
+ 	RTAX_IFA                          = 0x5
+ 	RTAX_IFP                          = 0x4
+ 	RTAX_LABEL                        = 0xa
+-	RTAX_MAX                          = 0xb
++	RTAX_MAX                          = 0xf
+ 	RTAX_NETMASK                      = 0x2
++	RTAX_SEARCH                       = 0xe
+ 	RTAX_SRC                          = 0x8
+ 	RTAX_SRCMASK                      = 0x9
++	RTAX_STATIC                       = 0xd
+ 	RTA_AUTHOR                        = 0x40
++	RTA_BFD                           = 0x800
+ 	RTA_BRD                           = 0x80
++	RTA_DNS                           = 0x1000
+ 	RTA_DST                           = 0x1
+ 	RTA_GATEWAY                       = 0x2
+ 	RTA_GENMASK                       = 0x8
+@@ -998,46 +1096,54 @@ const (
+ 	RTA_IFP                           = 0x10
+ 	RTA_LABEL                         = 0x400
+ 	RTA_NETMASK                       = 0x4
++	RTA_SEARCH                        = 0x4000
+ 	RTA_SRC                           = 0x100
+ 	RTA_SRCMASK                       = 0x200
++	RTA_STATIC                        = 0x2000
+ 	RTF_ANNOUNCE                      = 0x4000
++	RTF_BFD                           = 0x1000000
+ 	RTF_BLACKHOLE                     = 0x1000
++	RTF_BROADCAST                     = 0x400000
++	RTF_CACHED                        = 0x20000
+ 	RTF_CLONED                        = 0x10000
+ 	RTF_CLONING                       = 0x100
++	RTF_CONNECTED                     = 0x800000
+ 	RTF_DONE                          = 0x40
+ 	RTF_DYNAMIC                       = 0x10
+-	RTF_FMASK                         = 0x10f808
++	RTF_FMASK                         = 0x110fc08
+ 	RTF_GATEWAY                       = 0x2
+ 	RTF_HOST                          = 0x4
+ 	RTF_LLINFO                        = 0x400
+-	RTF_MASK                          = 0x80
++	RTF_LOCAL                         = 0x200000
+ 	RTF_MODIFIED                      = 0x20
+ 	RTF_MPATH                         = 0x40000
+ 	RTF_MPLS                          = 0x100000
++	RTF_MULTICAST                     = 0x200
+ 	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_80211INFO                     = 0x15
+ 	RTM_ADD                           = 0x1
++	RTM_BFD                           = 0x12
+ 	RTM_CHANGE                        = 0x3
++	RTM_CHGADDRATTR                   = 0x14
+ 	RTM_DELADDR                       = 0xd
+ 	RTM_DELETE                        = 0x2
+ 	RTM_DESYNC                        = 0x10
+ 	RTM_GET                           = 0x4
+ 	RTM_IFANNOUNCE                    = 0xf
+ 	RTM_IFINFO                        = 0xe
+-	RTM_LOCK                          = 0x8
++	RTM_INVALIDATE                    = 0x11
+ 	RTM_LOSING                        = 0x5
+ 	RTM_MAXSIZE                       = 0x800
+ 	RTM_MISS                          = 0x7
+ 	RTM_NEWADDR                       = 0xc
++	RTM_PROPOSAL                      = 0x13
+ 	RTM_REDIRECT                      = 0x6
+ 	RTM_RESOLVE                       = 0xb
+ 	RTM_RTTUNIT                       = 0xf4240
+@@ -1050,6 +1156,8 @@ const (
+ 	RTV_RTTVAR                        = 0x80
+ 	RTV_SPIPE                         = 0x10
+ 	RTV_SSTHRESH                      = 0x20
++	RT_TABLEID_BITS                   = 0x8
++	RT_TABLEID_MASK                   = 0xff
+ 	RT_TABLEID_MAX                    = 0xff
+ 	RUSAGE_CHILDREN                   = -0x1
+ 	RUSAGE_SELF                       = 0x0
+@@ -1062,55 +1170,57 @@ const (
+ 	SIOCADDMULTI                      = 0x80206931
+ 	SIOCAIFADDR                       = 0x8040691a
+ 	SIOCAIFGROUP                      = 0x80286987
+-	SIOCALIFADDR                      = 0x8218691c
+ 	SIOCATMARK                        = 0x40047307
+-	SIOCBRDGADD                       = 0x8058693c
+-	SIOCBRDGADDS                      = 0x80586941
+-	SIOCBRDGARL                       = 0x806e694d
++	SIOCBRDGADD                       = 0x8060693c
++	SIOCBRDGADDL                      = 0x80606949
++	SIOCBRDGADDS                      = 0x80606941
++	SIOCBRDGARL                       = 0x808c694d
+ 	SIOCBRDGDADDR                     = 0x81286947
+-	SIOCBRDGDEL                       = 0x8058693d
+-	SIOCBRDGDELS                      = 0x80586942
+-	SIOCBRDGFLUSH                     = 0x80586948
+-	SIOCBRDGFRL                       = 0x806e694e
+-	SIOCBRDGGCACHE                    = 0xc0146941
+-	SIOCBRDGGFD                       = 0xc0146952
+-	SIOCBRDGGHT                       = 0xc0146951
+-	SIOCBRDGGIFFLGS                   = 0xc058693e
+-	SIOCBRDGGMA                       = 0xc0146953
++	SIOCBRDGDEL                       = 0x8060693d
++	SIOCBRDGDELS                      = 0x80606942
++	SIOCBRDGFLUSH                     = 0x80606948
++	SIOCBRDGFRL                       = 0x808c694e
++	SIOCBRDGGCACHE                    = 0xc0186941
++	SIOCBRDGGFD                       = 0xc0186952
++	SIOCBRDGGHT                       = 0xc0186951
++	SIOCBRDGGIFFLGS                   = 0xc060693e
++	SIOCBRDGGMA                       = 0xc0186953
+ 	SIOCBRDGGPARAM                    = 0xc0406958
+-	SIOCBRDGGPRI                      = 0xc0146950
++	SIOCBRDGGPRI                      = 0xc0186950
+ 	SIOCBRDGGRL                       = 0xc030694f
+-	SIOCBRDGGSIFS                     = 0xc058693c
+-	SIOCBRDGGTO                       = 0xc0146946
+-	SIOCBRDGIFS                       = 0xc0586942
++	SIOCBRDGGTO                       = 0xc0186946
++	SIOCBRDGIFS                       = 0xc0606942
+ 	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
++	SIOCBRDGSCACHE                    = 0x80186940
++	SIOCBRDGSFD                       = 0x80186952
++	SIOCBRDGSHT                       = 0x80186951
++	SIOCBRDGSIFCOST                   = 0x80606955
++	SIOCBRDGSIFFLGS                   = 0x8060693f
++	SIOCBRDGSIFPRIO                   = 0x80606954
++	SIOCBRDGSIFPROT                   = 0x8060694a
++	SIOCBRDGSMA                       = 0x80186953
++	SIOCBRDGSPRI                      = 0x80186950
++	SIOCBRDGSPROTO                    = 0x8018695a
++	SIOCBRDGSTO                       = 0x80186945
++	SIOCBRDGSTXHC                     = 0x80186959
++	SIOCDELLABEL                      = 0x80206997
+ 	SIOCDELMULTI                      = 0x80206932
+ 	SIOCDIFADDR                       = 0x80206919
+ 	SIOCDIFGROUP                      = 0x80286989
++	SIOCDIFPARENT                     = 0x802069b4
+ 	SIOCDIFPHYADDR                    = 0x80206949
+-	SIOCDLIFADDR                      = 0x8218691e
++	SIOCDPWE3NEIGHBOR                 = 0x802069de
++	SIOCDVNETID                       = 0x802069af
+ 	SIOCGETKALIVE                     = 0xc01869a4
+ 	SIOCGETLABEL                      = 0x8020699a
++	SIOCGETMPWCFG                     = 0xc02069ae
+ 	SIOCGETPFLOW                      = 0xc02069fe
+ 	SIOCGETPFSYNC                     = 0xc02069f8
+ 	SIOCGETSGCNT                      = 0xc0207534
+ 	SIOCGETVIFCNT                     = 0xc0287533
+ 	SIOCGETVLAN                       = 0xc0206990
+-	SIOCGHIWAT                        = 0x40047301
+ 	SIOCGIFADDR                       = 0xc0206921
+-	SIOCGIFASYNCMAP                   = 0xc020697c
+ 	SIOCGIFBRDADDR                    = 0xc0206923
+ 	SIOCGIFCONF                       = 0xc0106924
+ 	SIOCGIFDATA                       = 0xc020691b
+@@ -1119,40 +1229,52 @@ const (
+ 	SIOCGIFFLAGS                      = 0xc0206911
+ 	SIOCGIFGATTR                      = 0xc028698b
+ 	SIOCGIFGENERIC                    = 0xc020693a
++	SIOCGIFGLIST                      = 0xc028698d
+ 	SIOCGIFGMEMB                      = 0xc028698a
+ 	SIOCGIFGROUP                      = 0xc0286988
+ 	SIOCGIFHARDMTU                    = 0xc02069a5
+-	SIOCGIFMEDIA                      = 0xc0306936
++	SIOCGIFLLPRIO                     = 0xc02069b6
++	SIOCGIFMEDIA                      = 0xc0406938
+ 	SIOCGIFMETRIC                     = 0xc0206917
+ 	SIOCGIFMTU                        = 0xc020697e
+ 	SIOCGIFNETMASK                    = 0xc0206925
+-	SIOCGIFPDSTADDR                   = 0xc0206948
++	SIOCGIFPAIR                       = 0xc02069b1
++	SIOCGIFPARENT                     = 0xc02069b3
+ 	SIOCGIFPRIORITY                   = 0xc020699c
+-	SIOCGIFPSRCADDR                   = 0xc0206947
+ 	SIOCGIFRDOMAIN                    = 0xc02069a0
+ 	SIOCGIFRTLABEL                    = 0xc0206983
+-	SIOCGIFTIMESLOT                   = 0xc0206986
++	SIOCGIFRXR                        = 0x802069aa
++	SIOCGIFSFFPAGE                    = 0xc1126939
+ 	SIOCGIFXFLAGS                     = 0xc020699e
+-	SIOCGLIFADDR                      = 0xc218691d
+ 	SIOCGLIFPHYADDR                   = 0xc218694b
++	SIOCGLIFPHYDF                     = 0xc02069c2
++	SIOCGLIFPHYECN                    = 0xc02069c8
+ 	SIOCGLIFPHYRTABLE                 = 0xc02069a2
+ 	SIOCGLIFPHYTTL                    = 0xc02069a9
+-	SIOCGLOWAT                        = 0x40047303
+ 	SIOCGPGRP                         = 0x40047309
++	SIOCGPWE3                         = 0xc0206998
++	SIOCGPWE3CTRLWORD                 = 0xc02069dc
++	SIOCGPWE3FAT                      = 0xc02069dd
++	SIOCGPWE3NEIGHBOR                 = 0xc21869de
+ 	SIOCGSPPPPARAMS                   = 0xc0206994
++	SIOCGTXHPRIO                      = 0xc02069c6
++	SIOCGUMBINFO                      = 0xc02069be
++	SIOCGUMBPARAM                     = 0xc02069c0
+ 	SIOCGVH                           = 0xc02069f6
++	SIOCGVNETFLOWID                   = 0xc02069c4
+ 	SIOCGVNETID                       = 0xc02069a7
++	SIOCIFAFATTACH                    = 0x801169ab
++	SIOCIFAFDETACH                    = 0x801169ac
+ 	SIOCIFCREATE                      = 0x8020697a
+ 	SIOCIFDESTROY                     = 0x80206979
+ 	SIOCIFGCLONERS                    = 0xc0106978
+ 	SIOCSETKALIVE                     = 0x801869a3
+ 	SIOCSETLABEL                      = 0x80206999
++	SIOCSETMPWCFG                     = 0x802069ad
+ 	SIOCSETPFLOW                      = 0x802069fd
+ 	SIOCSETPFSYNC                     = 0x802069f7
+ 	SIOCSETVLAN                       = 0x8020698f
+-	SIOCSHIWAT                        = 0x80047300
+ 	SIOCSIFADDR                       = 0x8020690c
+-	SIOCSIFASYNCMAP                   = 0x8020697d
+ 	SIOCSIFBRDADDR                    = 0x80206913
+ 	SIOCSIFDESCR                      = 0x80206980
+ 	SIOCSIFDSTADDR                    = 0x8020690e
+@@ -1160,25 +1282,41 @@ const (
+ 	SIOCSIFGATTR                      = 0x8028698c
+ 	SIOCSIFGENERIC                    = 0x80206939
+ 	SIOCSIFLLADDR                     = 0x8020691f
+-	SIOCSIFMEDIA                      = 0xc0206935
++	SIOCSIFLLPRIO                     = 0x802069b5
++	SIOCSIFMEDIA                      = 0xc0206937
+ 	SIOCSIFMETRIC                     = 0x80206918
+ 	SIOCSIFMTU                        = 0x8020697f
+ 	SIOCSIFNETMASK                    = 0x80206916
+-	SIOCSIFPHYADDR                    = 0x80406946
++	SIOCSIFPAIR                       = 0x802069b0
++	SIOCSIFPARENT                     = 0x802069b2
+ 	SIOCSIFPRIORITY                   = 0x8020699b
+ 	SIOCSIFRDOMAIN                    = 0x8020699f
+ 	SIOCSIFRTLABEL                    = 0x80206982
+-	SIOCSIFTIMESLOT                   = 0x80206985
+ 	SIOCSIFXFLAGS                     = 0x8020699d
+ 	SIOCSLIFPHYADDR                   = 0x8218694a
++	SIOCSLIFPHYDF                     = 0x802069c1
++	SIOCSLIFPHYECN                    = 0x802069c7
+ 	SIOCSLIFPHYRTABLE                 = 0x802069a1
+ 	SIOCSLIFPHYTTL                    = 0x802069a8
+-	SIOCSLOWAT                        = 0x80047302
+ 	SIOCSPGRP                         = 0x80047308
++	SIOCSPWE3CTRLWORD                 = 0x802069dc
++	SIOCSPWE3FAT                      = 0x802069dd
++	SIOCSPWE3NEIGHBOR                 = 0x821869de
+ 	SIOCSSPPPPARAMS                   = 0x80206993
++	SIOCSTXHPRIO                      = 0x802069c5
++	SIOCSUMBPARAM                     = 0x802069bf
+ 	SIOCSVH                           = 0xc02069f5
++	SIOCSVNETFLOWID                   = 0x802069c3
+ 	SIOCSVNETID                       = 0x802069a6
++	SIOCSWGDPID                       = 0xc018695b
++	SIOCSWGMAXFLOW                    = 0xc0186960
++	SIOCSWGMAXGROUP                   = 0xc018695d
++	SIOCSWSDPID                       = 0x8018695c
++	SIOCSWSPORTNO                     = 0xc060695f
++	SOCK_CLOEXEC                      = 0x8000
+ 	SOCK_DGRAM                        = 0x2
++	SOCK_DNS                          = 0x1000
++	SOCK_NONBLOCK                     = 0x4000
+ 	SOCK_RAW                          = 0x3
+ 	SOCK_RDM                          = 0x4
+ 	SOCK_SEQPACKET                    = 0x5
+@@ -1209,9 +1347,42 @@ const (
+ 	SO_TIMESTAMP                      = 0x800
+ 	SO_TYPE                           = 0x1008
+ 	SO_USELOOPBACK                    = 0x40
++	SO_ZEROIZE                        = 0x2000
++	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_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
++	TCIOFF                            = 0x3
+ 	TCIOFLUSH                         = 0x3
++	TCION                             = 0x4
+ 	TCOFLUSH                          = 0x2
++	TCOOFF                            = 0x1
++	TCOON                             = 0x2
+ 	TCP_MAXBURST                      = 0x4
+ 	TCP_MAXSEG                        = 0x2
+ 	TCP_MAXWIN                        = 0xffff
+@@ -1221,11 +1392,14 @@ const (
+ 	TCP_MSS                           = 0x200
+ 	TCP_NODELAY                       = 0x1
+ 	TCP_NOPUSH                        = 0x10
+-	TCP_NSTATES                       = 0xb
+ 	TCP_SACK_ENABLE                   = 0x8
+ 	TCSAFLUSH                         = 0x2
++	TIMER_ABSTIME                     = 0x1
++	TIMER_RELTIME                     = 0x0
+ 	TIOCCBRK                          = 0x2000747a
+ 	TIOCCDTR                          = 0x20007478
++	TIOCCHKVERAUTH                    = 0x2000741e
++	TIOCCLRVERAUTH                    = 0x2000741d
+ 	TIOCCONS                          = 0x80047462
+ 	TIOCDRAIN                         = 0x2000745e
+ 	TIOCEXCL                          = 0x2000740d
+@@ -1280,17 +1454,21 @@ const (
+ 	TIOCSETAF                         = 0x802c7416
+ 	TIOCSETAW                         = 0x802c7415
+ 	TIOCSETD                          = 0x8004741b
++	TIOCSETVERAUTH                    = 0x8004741c
+ 	TIOCSFLAGS                        = 0x8004745c
+ 	TIOCSIG                           = 0x8004745f
+ 	TIOCSPGRP                         = 0x80047476
+ 	TIOCSTART                         = 0x2000746e
+-	TIOCSTAT                          = 0x80047465
+-	TIOCSTI                           = 0x80017472
++	TIOCSTAT                          = 0x20007465
+ 	TIOCSTOP                          = 0x2000746f
+ 	TIOCSTSTAMP                       = 0x8008745a
+ 	TIOCSWINSZ                        = 0x80087467
+ 	TIOCUCNTL                         = 0x80047466
++	TIOCUCNTL_CBRK                    = 0x7a
++	TIOCUCNTL_SBRK                    = 0x7b
+ 	TOSTOP                            = 0x400000
++	UTIME_NOW                         = -0x2
++	UTIME_OMIT                        = -0x1
+ 	VDISCARD                          = 0xf
+ 	VDSUSP                            = 0xb
+ 	VEOF                              = 0x0
+@@ -1301,6 +1479,19 @@ const (
+ 	VKILL                             = 0x5
+ 	VLNEXT                            = 0xe
+ 	VMIN                              = 0x10
++	VM_ANONMIN                        = 0x7
++	VM_LOADAVG                        = 0x2
++	VM_MALLOC_CONF                    = 0xc
++	VM_MAXID                          = 0xd
++	VM_MAXSLP                         = 0xa
++	VM_METER                          = 0x1
++	VM_NKMEMPAGES                     = 0x6
++	VM_PSSTRINGS                      = 0x3
++	VM_SWAPENCRYPT                    = 0x5
++	VM_USPACE                         = 0xb
++	VM_UVMEXP                         = 0x4
++	VM_VNODEMIN                       = 0x9
++	VM_VTEXTMIN                       = 0x8
+ 	VQUIT                             = 0x9
+ 	VREPRINT                          = 0x6
+ 	VSTART                            = 0xc
+@@ -1313,8 +1504,8 @@ const (
+ 	WCONTINUED                        = 0x8
+ 	WCOREFLAG                         = 0x80
+ 	WNOHANG                           = 0x1
+-	WSTOPPED                          = 0x7f
+ 	WUNTRACED                         = 0x2
++	XCASE                             = 0x1000000
+ )
+ 
+ // Errors
+@@ -1328,6 +1519,7 @@ const (
+ 	EALREADY        = syscall.Errno(0x25)
+ 	EAUTH           = syscall.Errno(0x50)
+ 	EBADF           = syscall.Errno(0x9)
++	EBADMSG         = syscall.Errno(0x5c)
+ 	EBADRPC         = syscall.Errno(0x48)
+ 	EBUSY           = syscall.Errno(0x10)
+ 	ECANCELED       = syscall.Errno(0x58)
+@@ -1354,7 +1546,7 @@ const (
+ 	EIPSEC          = syscall.Errno(0x52)
+ 	EISCONN         = syscall.Errno(0x38)
+ 	EISDIR          = syscall.Errno(0x15)
+-	ELAST           = syscall.Errno(0x5b)
++	ELAST           = syscall.Errno(0x5f)
+ 	ELOOP           = syscall.Errno(0x3e)
+ 	EMEDIUMTYPE     = syscall.Errno(0x56)
+ 	EMFILE          = syscall.Errno(0x18)
+@@ -1382,12 +1574,14 @@ const (
+ 	ENOTCONN        = syscall.Errno(0x39)
+ 	ENOTDIR         = syscall.Errno(0x14)
+ 	ENOTEMPTY       = syscall.Errno(0x42)
++	ENOTRECOVERABLE = syscall.Errno(0x5d)
+ 	ENOTSOCK        = syscall.Errno(0x26)
+ 	ENOTSUP         = syscall.Errno(0x5b)
+ 	ENOTTY          = syscall.Errno(0x19)
+ 	ENXIO           = syscall.Errno(0x6)
+ 	EOPNOTSUPP      = syscall.Errno(0x2d)
+ 	EOVERFLOW       = syscall.Errno(0x57)
++	EOWNERDEAD      = syscall.Errno(0x5e)
+ 	EPERM           = syscall.Errno(0x1)
+ 	EPFNOSUPPORT    = syscall.Errno(0x2e)
+ 	EPIPE           = syscall.Errno(0x20)
+@@ -1395,6 +1589,7 @@ const (
+ 	EPROCUNAVAIL    = syscall.Errno(0x4c)
+ 	EPROGMISMATCH   = syscall.Errno(0x4b)
+ 	EPROGUNAVAIL    = syscall.Errno(0x4a)
++	EPROTO          = syscall.Errno(0x5f)
+ 	EPROTONOSUPPORT = syscall.Errno(0x2b)
+ 	EPROTOTYPE      = syscall.Errno(0x29)
+ 	ERANGE          = syscall.Errno(0x22)
+@@ -1452,132 +1647,144 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "operation not permitted"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "input/output error"},
++	{6, "ENXIO", "device not configured"},
++	{7, "E2BIG", "argument list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file descriptor"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EDEADLK", "resource deadlock avoided"},
++	{12, "ENOMEM", "cannot allocate memory"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "operation not supported by device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "too many open files in system"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "numerical argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "EAGAIN", "resource temporarily unavailable"},
++	{36, "EINPROGRESS", "operation now in progress"},
++	{37, "EALREADY", "operation already in progress"},
++	{38, "ENOTSOCK", "socket operation on non-socket"},
++	{39, "EDESTADDRREQ", "destination address required"},
++	{40, "EMSGSIZE", "message too long"},
++	{41, "EPROTOTYPE", "protocol wrong type for socket"},
++	{42, "ENOPROTOOPT", "protocol not available"},
++	{43, "EPROTONOSUPPORT", "protocol not supported"},
++	{44, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{45, "EOPNOTSUPP", "operation not supported"},
++	{46, "EPFNOSUPPORT", "protocol family not supported"},
++	{47, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{48, "EADDRINUSE", "address already in use"},
++	{49, "EADDRNOTAVAIL", "can't assign requested address"},
++	{50, "ENETDOWN", "network is down"},
++	{51, "ENETUNREACH", "network is unreachable"},
++	{52, "ENETRESET", "network dropped connection on reset"},
++	{53, "ECONNABORTED", "software caused connection abort"},
++	{54, "ECONNRESET", "connection reset by peer"},
++	{55, "ENOBUFS", "no buffer space available"},
++	{56, "EISCONN", "socket is already connected"},
++	{57, "ENOTCONN", "socket is not connected"},
++	{58, "ESHUTDOWN", "can't send after socket shutdown"},
++	{59, "ETOOMANYREFS", "too many references: can't splice"},
++	{60, "ETIMEDOUT", "operation timed out"},
++	{61, "ECONNREFUSED", "connection refused"},
++	{62, "ELOOP", "too many levels of symbolic links"},
++	{63, "ENAMETOOLONG", "file name too long"},
++	{64, "EHOSTDOWN", "host is down"},
++	{65, "EHOSTUNREACH", "no route to host"},
++	{66, "ENOTEMPTY", "directory not empty"},
++	{67, "EPROCLIM", "too many processes"},
++	{68, "EUSERS", "too many users"},
++	{69, "EDQUOT", "disk quota exceeded"},
++	{70, "ESTALE", "stale NFS file handle"},
++	{71, "EREMOTE", "too many levels of remote in path"},
++	{72, "EBADRPC", "RPC struct is bad"},
++	{73, "ERPCMISMATCH", "RPC version wrong"},
++	{74, "EPROGUNAVAIL", "RPC program not available"},
++	{75, "EPROGMISMATCH", "program version wrong"},
++	{76, "EPROCUNAVAIL", "bad procedure for program"},
++	{77, "ENOLCK", "no locks available"},
++	{78, "ENOSYS", "function not implemented"},
++	{79, "EFTYPE", "inappropriate file type or format"},
++	{80, "EAUTH", "authentication error"},
++	{81, "ENEEDAUTH", "need authenticator"},
++	{82, "EIPSEC", "IPsec processing failure"},
++	{83, "ENOATTR", "attribute not found"},
++	{84, "EILSEQ", "illegal byte sequence"},
++	{85, "ENOMEDIUM", "no medium found"},
++	{86, "EMEDIUMTYPE", "wrong medium type"},
++	{87, "EOVERFLOW", "value too large to be stored in data type"},
++	{88, "ECANCELED", "operation canceled"},
++	{89, "EIDRM", "identifier removed"},
++	{90, "ENOMSG", "no message of desired type"},
++	{91, "ENOTSUP", "not supported"},
++	{92, "EBADMSG", "bad message"},
++	{93, "ENOTRECOVERABLE", "state not recoverable"},
++	{94, "EOWNERDEAD", "previous owner died"},
++	{95, "ELAST", "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: "thread AST",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal instruction"},
++	{5, "SIGTRAP", "trace/BPT trap"},
++	{6, "SIGABRT", "abort trap"},
++	{7, "SIGEMT", "EMT trap"},
++	{8, "SIGFPE", "floating point exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus error"},
++	{11, "SIGSEGV", "segmentation fault"},
++	{12, "SIGSYS", "bad system call"},
++	{13, "SIGPIPE", "broken pipe"},
++	{14, "SIGALRM", "alarm clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGURG", "urgent I/O condition"},
++	{17, "SIGSTOP", "suspended (signal)"},
++	{18, "SIGTSTP", "suspended"},
++	{19, "SIGCONT", "continued"},
++	{20, "SIGCHLD", "child exited"},
++	{21, "SIGTTIN", "stopped (tty input)"},
++	{22, "SIGTTOU", "stopped (tty output)"},
++	{23, "SIGIO", "I/O possible"},
++	{24, "SIGXCPU", "cputime limit exceeded"},
++	{25, "SIGXFSZ", "filesize limit exceeded"},
++	{26, "SIGVTALRM", "virtual timer expired"},
++	{27, "SIGPROF", "profiling timer expired"},
++	{28, "SIGWINCH", "window size changes"},
++	{29, "SIGINFO", "information request"},
++	{30, "SIGUSR1", "user defined signal 1"},
++	{31, "SIGUSR2", "user defined signal 2"},
++	{32, "SIGTHR", "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
+index 81e83d78..46e054cc 100644
+--- a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
+@@ -3,7 +3,7 @@
+ 
+ // +build amd64,solaris
+ 
+-// Created by cgo -godefs - DO NOT EDIT
++// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+ // cgo -godefs -- -m64 _const.go
+ 
+ package unix
+@@ -664,6 +664,9 @@ const (
+ 	MS_OLDSYNC                    = 0x0
+ 	MS_SYNC                       = 0x4
+ 	M_FLUSH                       = 0x86
++	NAME_MAX                      = 0xff
++	NEWDEV                        = 0x1
++	NFDBITS                       = 0x40
+ 	NL0                           = 0x0
+ 	NL1                           = 0x100
+ 	NLDLY                         = 0x100
+@@ -672,6 +675,9 @@ const (
+ 	OFDEL                         = 0x80
+ 	OFILL                         = 0x40
+ 	OLCUC                         = 0x2
++	OLDDEV                        = 0x0
++	ONBITSMAJOR                   = 0x7
++	ONBITSMINOR                   = 0x8
+ 	ONLCR                         = 0x4
+ 	ONLRET                        = 0x20
+ 	ONOCR                         = 0x10
+@@ -991,6 +997,39 @@ const (
+ 	SO_USELOOPBACK                = 0x40
+ 	SO_VRRP                       = 0x1017
+ 	SO_WROFF                      = 0x2
++	S_ENFMT                       = 0x400
++	S_IAMB                        = 0x1ff
++	S_IEXEC                       = 0x40
++	S_IFBLK                       = 0x6000
++	S_IFCHR                       = 0x2000
++	S_IFDIR                       = 0x4000
++	S_IFDOOR                      = 0xd000
++	S_IFIFO                       = 0x1000
++	S_IFLNK                       = 0xa000
++	S_IFMT                        = 0xf000
++	S_IFNAM                       = 0x5000
++	S_IFPORT                      = 0xe000
++	S_IFREG                       = 0x8000
++	S_IFSOCK                      = 0xc000
++	S_INSEM                       = 0x1
++	S_INSHD                       = 0x2
++	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
+@@ -1097,6 +1136,8 @@ const (
+ 	TIOCSTOP                      = 0x746f
+ 	TIOCSWINSZ                    = 0x5467
+ 	TOSTOP                        = 0x100
++	UTIME_NOW                     = -0x1
++	UTIME_OMIT                    = -0x2
+ 	VCEOF                         = 0x8
+ 	VCEOL                         = 0x9
+ 	VDISCARD                      = 0xd
+@@ -1105,6 +1146,7 @@ const (
+ 	VEOL                          = 0x5
+ 	VEOL2                         = 0x6
+ 	VERASE                        = 0x2
++	VERASE2                       = 0x11
+ 	VINTR                         = 0x0
+ 	VKILL                         = 0x3
+ 	VLNEXT                        = 0xf
+@@ -1313,171 +1355,179 @@ const (
+ )
+ 
+ // 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",
++var errorList = [...]struct {
++	num  syscall.Errno
++	name string
++	desc string
++}{
++	{1, "EPERM", "not owner"},
++	{2, "ENOENT", "no such file or directory"},
++	{3, "ESRCH", "no such process"},
++	{4, "EINTR", "interrupted system call"},
++	{5, "EIO", "I/O error"},
++	{6, "ENXIO", "no such device or address"},
++	{7, "E2BIG", "arg list too long"},
++	{8, "ENOEXEC", "exec format error"},
++	{9, "EBADF", "bad file number"},
++	{10, "ECHILD", "no child processes"},
++	{11, "EAGAIN", "resource temporarily unavailable"},
++	{12, "ENOMEM", "not enough space"},
++	{13, "EACCES", "permission denied"},
++	{14, "EFAULT", "bad address"},
++	{15, "ENOTBLK", "block device required"},
++	{16, "EBUSY", "device busy"},
++	{17, "EEXIST", "file exists"},
++	{18, "EXDEV", "cross-device link"},
++	{19, "ENODEV", "no such device"},
++	{20, "ENOTDIR", "not a directory"},
++	{21, "EISDIR", "is a directory"},
++	{22, "EINVAL", "invalid argument"},
++	{23, "ENFILE", "file table overflow"},
++	{24, "EMFILE", "too many open files"},
++	{25, "ENOTTY", "inappropriate ioctl for device"},
++	{26, "ETXTBSY", "text file busy"},
++	{27, "EFBIG", "file too large"},
++	{28, "ENOSPC", "no space left on device"},
++	{29, "ESPIPE", "illegal seek"},
++	{30, "EROFS", "read-only file system"},
++	{31, "EMLINK", "too many links"},
++	{32, "EPIPE", "broken pipe"},
++	{33, "EDOM", "argument out of domain"},
++	{34, "ERANGE", "result too large"},
++	{35, "ENOMSG", "no message of desired type"},
++	{36, "EIDRM", "identifier removed"},
++	{37, "ECHRNG", "channel number out of range"},
++	{38, "EL2NSYNC", "level 2 not synchronized"},
++	{39, "EL3HLT", "level 3 halted"},
++	{40, "EL3RST", "level 3 reset"},
++	{41, "ELNRNG", "link number out of range"},
++	{42, "EUNATCH", "protocol driver not attached"},
++	{43, "ENOCSI", "no CSI structure available"},
++	{44, "EL2HLT", "level 2 halted"},
++	{45, "EDEADLK", "deadlock situation detected/avoided"},
++	{46, "ENOLCK", "no record locks available"},
++	{47, "ECANCELED", "operation canceled"},
++	{48, "ENOTSUP", "operation not supported"},
++	{49, "EDQUOT", "disc quota exceeded"},
++	{50, "EBADE", "bad exchange descriptor"},
++	{51, "EBADR", "bad request descriptor"},
++	{52, "EXFULL", "message tables full"},
++	{53, "ENOANO", "anode table overflow"},
++	{54, "EBADRQC", "bad request code"},
++	{55, "EBADSLT", "invalid slot"},
++	{56, "EDEADLOCK", "file locking deadlock"},
++	{57, "EBFONT", "bad font file format"},
++	{58, "EOWNERDEAD", "owner of the lock died"},
++	{59, "ENOTRECOVERABLE", "lock is not recoverable"},
++	{60, "ENOSTR", "not a stream device"},
++	{61, "ENODATA", "no data available"},
++	{62, "ETIME", "timer expired"},
++	{63, "ENOSR", "out of stream resources"},
++	{64, "ENONET", "machine is not on the network"},
++	{65, "ENOPKG", "package not installed"},
++	{66, "EREMOTE", "object is remote"},
++	{67, "ENOLINK", "link has been severed"},
++	{68, "EADV", "advertise error"},
++	{69, "ESRMNT", "srmount error"},
++	{70, "ECOMM", "communication error on send"},
++	{71, "EPROTO", "protocol error"},
++	{72, "ELOCKUNMAPPED", "locked lock was unmapped "},
++	{73, "ENOTACTIVE", "facility is not active"},
++	{74, "EMULTIHOP", "multihop attempted"},
++	{77, "EBADMSG", "not a data message"},
++	{78, "ENAMETOOLONG", "file name too long"},
++	{79, "EOVERFLOW", "value too large for defined data type"},
++	{80, "ENOTUNIQ", "name not unique on network"},
++	{81, "EBADFD", "file descriptor in bad state"},
++	{82, "EREMCHG", "remote address changed"},
++	{83, "ELIBACC", "can not access a needed shared library"},
++	{84, "ELIBBAD", "accessing a corrupted shared library"},
++	{85, "ELIBSCN", ".lib section in a.out corrupted"},
++	{86, "ELIBMAX", "attempting to link in more shared libraries than system limit"},
++	{87, "ELIBEXEC", "can not exec a shared library directly"},
++	{88, "EILSEQ", "illegal byte sequence"},
++	{89, "ENOSYS", "operation not applicable"},
++	{90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"},
++	{91, "ERESTART", "error 91"},
++	{92, "ESTRPIPE", "error 92"},
++	{93, "ENOTEMPTY", "directory not empty"},
++	{94, "EUSERS", "too many users"},
++	{95, "ENOTSOCK", "socket operation on non-socket"},
++	{96, "EDESTADDRREQ", "destination address required"},
++	{97, "EMSGSIZE", "message too long"},
++	{98, "EPROTOTYPE", "protocol wrong type for socket"},
++	{99, "ENOPROTOOPT", "option not supported by protocol"},
++	{120, "EPROTONOSUPPORT", "protocol not supported"},
++	{121, "ESOCKTNOSUPPORT", "socket type not supported"},
++	{122, "EOPNOTSUPP", "operation not supported on transport endpoint"},
++	{123, "EPFNOSUPPORT", "protocol family not supported"},
++	{124, "EAFNOSUPPORT", "address family not supported by protocol family"},
++	{125, "EADDRINUSE", "address already in use"},
++	{126, "EADDRNOTAVAIL", "cannot assign requested address"},
++	{127, "ENETDOWN", "network is down"},
++	{128, "ENETUNREACH", "network is unreachable"},
++	{129, "ENETRESET", "network dropped connection because of reset"},
++	{130, "ECONNABORTED", "software caused connection abort"},
++	{131, "ECONNRESET", "connection reset by peer"},
++	{132, "ENOBUFS", "no buffer space available"},
++	{133, "EISCONN", "transport endpoint is already connected"},
++	{134, "ENOTCONN", "transport endpoint is not connected"},
++	{143, "ESHUTDOWN", "cannot send after socket shutdown"},
++	{144, "ETOOMANYREFS", "too many references: cannot splice"},
++	{145, "ETIMEDOUT", "connection timed out"},
++	{146, "ECONNREFUSED", "connection refused"},
++	{147, "EHOSTDOWN", "host is down"},
++	{148, "EHOSTUNREACH", "no route to host"},
++	{149, "EALREADY", "operation already in progress"},
++	{150, "EINPROGRESS", "operation now in progress"},
++	{151, "ESTALE", "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",
++var signalList = [...]struct {
++	num  syscall.Signal
++	name string
++	desc string
++}{
++	{1, "SIGHUP", "hangup"},
++	{2, "SIGINT", "interrupt"},
++	{3, "SIGQUIT", "quit"},
++	{4, "SIGILL", "illegal Instruction"},
++	{5, "SIGTRAP", "trace/Breakpoint Trap"},
++	{6, "SIGABRT", "abort"},
++	{7, "SIGEMT", "emulation Trap"},
++	{8, "SIGFPE", "arithmetic Exception"},
++	{9, "SIGKILL", "killed"},
++	{10, "SIGBUS", "bus Error"},
++	{11, "SIGSEGV", "segmentation Fault"},
++	{12, "SIGSYS", "bad System Call"},
++	{13, "SIGPIPE", "broken Pipe"},
++	{14, "SIGALRM", "alarm Clock"},
++	{15, "SIGTERM", "terminated"},
++	{16, "SIGUSR1", "user Signal 1"},
++	{17, "SIGUSR2", "user Signal 2"},
++	{18, "SIGCHLD", "child Status Changed"},
++	{19, "SIGPWR", "power-Fail/Restart"},
++	{20, "SIGWINCH", "window Size Change"},
++	{21, "SIGURG", "urgent Socket Condition"},
++	{22, "SIGIO", "pollable Event"},
++	{23, "SIGSTOP", "stopped (signal)"},
++	{24, "SIGTSTP", "stopped (user)"},
++	{25, "SIGCONT", "continued"},
++	{26, "SIGTTIN", "stopped (tty input)"},
++	{27, "SIGTTOU", "stopped (tty output)"},
++	{28, "SIGVTALRM", "virtual Timer Expired"},
++	{29, "SIGPROF", "profiling Timer Expired"},
++	{30, "SIGXCPU", "cpu Limit Exceeded"},
++	{31, "SIGXFSZ", "file Size Limit Exceeded"},
++	{32, "SIGWAITING", "no runnable lwp"},
++	{33, "SIGLWP", "inter-lwp signal"},
++	{34, "SIGFREEZE", "checkpoint Freeze"},
++	{35, "SIGTHAW", "checkpoint Thaw"},
++	{36, "SIGCANCEL", "thread Cancellation"},
++	{37, "SIGLOST", "resource Lost"},
++	{38, "SIGXRES", "resource Control Exceeded"},
++	{39, "SIGJVM1", "reserved for JVM 1"},
++	{40, "SIGJVM2", "reserved for JVM 2"},
++	{41, "SIGINFO", "information Request"},
+ }
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+new file mode 100644
+index 00000000..89c5920e
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go
+@@ -0,0 +1,41 @@
++// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT.
++
++// +build linux
++// +build arm arm64
++
++package unix
++
++import "unsafe"
++
++// PtraceRegsArm is the registers used by arm binaries.
++type PtraceRegsArm struct {
++	Uregs [18]uint32
++}
++
++// PtraceGetRegsArm fetches the registers used by arm binaries.
++func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsArm sets the registers used by arm binaries.
++func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsArm64 is the registers used by arm64 binaries.
++type PtraceRegsArm64 struct {
++	Regs   [31]uint64
++	Sp     uint64
++	Pc     uint64
++	Pstate uint64
++}
++
++// PtraceGetRegsArm64 fetches the registers used by arm64 binaries.
++func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsArm64 sets the registers used by arm64 binaries.
++func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
+new file mode 100644
+index 00000000..6cb6d688
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go
+@@ -0,0 +1,17 @@
++// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT.
++
++package unix
++
++import "unsafe"
++
++// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.
++func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {
++	iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}
++	return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
++}
++
++// PtraceSetRegSetArm64 sets the registers used by arm64 binaries.
++func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {
++	iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}
++	return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+new file mode 100644
+index 00000000..24b841ee
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go
+@@ -0,0 +1,50 @@
++// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT.
++
++// +build linux
++// +build mips mips64
++
++package unix
++
++import "unsafe"
++
++// PtraceRegsMips is the registers used by mips binaries.
++type PtraceRegsMips struct {
++	Regs     [32]uint64
++	Lo       uint64
++	Hi       uint64
++	Epc      uint64
++	Badvaddr uint64
++	Status   uint64
++	Cause    uint64
++}
++
++// PtraceGetRegsMips fetches the registers used by mips binaries.
++func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMips sets the registers used by mips binaries.
++func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsMips64 is the registers used by mips64 binaries.
++type PtraceRegsMips64 struct {
++	Regs     [32]uint64
++	Lo       uint64
++	Hi       uint64
++	Epc      uint64
++	Badvaddr uint64
++	Status   uint64
++	Cause    uint64
++}
++
++// PtraceGetRegsMips64 fetches the registers used by mips64 binaries.
++func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMips64 sets the registers used by mips64 binaries.
++func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+new file mode 100644
+index 00000000..47b04895
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go
+@@ -0,0 +1,50 @@
++// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT.
++
++// +build linux
++// +build mipsle mips64le
++
++package unix
++
++import "unsafe"
++
++// PtraceRegsMipsle is the registers used by mipsle binaries.
++type PtraceRegsMipsle struct {
++	Regs     [32]uint64
++	Lo       uint64
++	Hi       uint64
++	Epc      uint64
++	Badvaddr uint64
++	Status   uint64
++	Cause    uint64
++}
++
++// PtraceGetRegsMipsle fetches the registers used by mipsle binaries.
++func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMipsle sets the registers used by mipsle binaries.
++func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsMips64le is the registers used by mips64le binaries.
++type PtraceRegsMips64le struct {
++	Regs     [32]uint64
++	Lo       uint64
++	Hi       uint64
++	Epc      uint64
++	Badvaddr uint64
++	Status   uint64
++	Cause    uint64
++}
++
++// PtraceGetRegsMips64le fetches the registers used by mips64le binaries.
++func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsMips64le sets the registers used by mips64le binaries.
++func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+new file mode 100644
+index 00000000..ea5d9cb5
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go
+@@ -0,0 +1,80 @@
++// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT.
++
++// +build linux
++// +build 386 amd64
++
++package unix
++
++import "unsafe"
++
++// PtraceRegs386 is the registers used by 386 binaries.
++type PtraceRegs386 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
++}
++
++// PtraceGetRegs386 fetches the registers used by 386 binaries.
++func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegs386 sets the registers used by 386 binaries.
++func PtraceSetRegs386(pid int, regs *PtraceRegs386) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
++
++// PtraceRegsAmd64 is the registers used by amd64 binaries.
++type PtraceRegsAmd64 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
++}
++
++// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries.
++func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error {
++	return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))
++}
++
++// PtraceSetRegsAmd64 sets the registers used by amd64 binaries.
++func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error {
++	return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+new file mode 100644
+index 00000000..ed657ff1
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go
+@@ -0,0 +1,1484 @@
++// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build aix,ppc
++
++package unix
++
++/*
++#include <stdint.h>
++#include <stddef.h>
++int utimes(uintptr_t, uintptr_t);
++int utimensat(int, uintptr_t, uintptr_t, int);
++int getcwd(uintptr_t, size_t);
++int accept(int, uintptr_t, uintptr_t);
++int getdirent(int, uintptr_t, size_t);
++int wait4(int, uintptr_t, int, uintptr_t);
++int ioctl(int, int, uintptr_t);
++int fcntl(uintptr_t, int, uintptr_t);
++int acct(uintptr_t);
++int chdir(uintptr_t);
++int chroot(uintptr_t);
++int close(int);
++int dup(int);
++void exit(int);
++int faccessat(int, uintptr_t, unsigned int, int);
++int fchdir(int);
++int fchmod(int, unsigned int);
++int fchmodat(int, uintptr_t, unsigned int, int);
++int fchownat(int, uintptr_t, int, int, int);
++int fdatasync(int);
++int fsync(int);
++int getpgid(int);
++int getpgrp();
++int getpid();
++int getppid();
++int getpriority(int, int);
++int getrusage(int, uintptr_t);
++int getsid(int);
++int kill(int, int);
++int syslog(int, uintptr_t, size_t);
++int mkdir(int, uintptr_t, unsigned int);
++int mkdirat(int, uintptr_t, unsigned int);
++int mkfifo(uintptr_t, unsigned int);
++int mknod(uintptr_t, unsigned int, int);
++int mknodat(int, uintptr_t, unsigned int, int);
++int nanosleep(uintptr_t, uintptr_t);
++int open64(uintptr_t, int, unsigned int);
++int openat(int, uintptr_t, int, unsigned int);
++int read(int, uintptr_t, size_t);
++int readlink(uintptr_t, uintptr_t, size_t);
++int renameat(int, uintptr_t, int, uintptr_t);
++int setdomainname(uintptr_t, size_t);
++int sethostname(uintptr_t, size_t);
++int setpgid(int, int);
++int setsid();
++int settimeofday(uintptr_t);
++int setuid(int);
++int setgid(int);
++int setpriority(int, int, int);
++int statx(int, uintptr_t, int, int, uintptr_t);
++int sync();
++uintptr_t times(uintptr_t);
++int umask(int);
++int uname(uintptr_t);
++int unlink(uintptr_t);
++int unlinkat(int, uintptr_t, int);
++int ustat(int, uintptr_t);
++int write(int, uintptr_t, size_t);
++int dup2(int, int);
++int posix_fadvise64(int, long long, long long, int);
++int fchown(int, int, int);
++int fstat(int, uintptr_t);
++int fstatat(int, uintptr_t, uintptr_t, int);
++int fstatfs(int, uintptr_t);
++int ftruncate(int, long long);
++int getegid();
++int geteuid();
++int getgid();
++int getuid();
++int lchown(uintptr_t, int, int);
++int listen(int, int);
++int lstat(uintptr_t, uintptr_t);
++int pause();
++int pread64(int, uintptr_t, size_t, long long);
++int pwrite64(int, uintptr_t, size_t, long long);
++#define c_select select
++int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int setregid(int, int);
++int setreuid(int, int);
++int shutdown(int, int);
++long long splice(int, uintptr_t, int, uintptr_t, int, int);
++int stat(uintptr_t, uintptr_t);
++int statfs(uintptr_t, uintptr_t);
++int truncate(uintptr_t, long long);
++int bind(int, uintptr_t, uintptr_t);
++int connect(int, uintptr_t, uintptr_t);
++int getgroups(int, uintptr_t);
++int setgroups(int, uintptr_t);
++int getsockopt(int, int, int, uintptr_t, uintptr_t);
++int setsockopt(int, int, int, uintptr_t, uintptr_t);
++int socket(int, int, int);
++int socketpair(int, int, int, uintptr_t);
++int getpeername(int, uintptr_t, uintptr_t);
++int getsockname(int, uintptr_t, uintptr_t);
++int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int nrecvmsg(int, uintptr_t, int);
++int nsendmsg(int, uintptr_t, int);
++int munmap(uintptr_t, uintptr_t);
++int madvise(uintptr_t, size_t, int);
++int mprotect(uintptr_t, size_t, int);
++int mlock(uintptr_t, size_t);
++int mlockall(int);
++int msync(uintptr_t, size_t, int);
++int munlock(uintptr_t, size_t);
++int munlockall();
++int pipe(uintptr_t);
++int poll(uintptr_t, int, int);
++int gettimeofday(uintptr_t, uintptr_t);
++int time(uintptr_t);
++int utime(uintptr_t, uintptr_t);
++unsigned long long getsystemcfg(int);
++int umount(uintptr_t);
++int getrlimit64(int, uintptr_t);
++int setrlimit64(int, uintptr_t);
++long long lseek64(int, long long, int);
++uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long);
++
++*/
++import "C"
++import (
++	"unsafe"
++)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimes(path string, times *[2]Timeval) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getcwd(buf []byte) (err error) {
++	var _p0 *byte
++	if len(buf) > 0 {
++		_p0 = &buf[0]
++	}
++	var _p1 int
++	_p1 = len(buf)
++	r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))
++	fd = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getdirent(fd int, buf []byte) (n int, err error) {
++	var _p0 *byte
++	if len(buf) > 0 {
++		_p0 = &buf[0]
++	}
++	var _p1 int
++	_p1 = len(buf)
++	r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {
++	r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))
++	wpid = Pid_t(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++	r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {
++	r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))
++	r = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {
++	r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))
++	val = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Acct(path string) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.acct(C.uintptr_t(_p0))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Chdir(path string) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.chdir(C.uintptr_t(_p0))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Chroot(path string) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.chroot(C.uintptr_t(_p0))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Close(fd int) (err error) {
++	r0, er := C.close(C.int(fd))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup(oldfd int) (fd int, err error) {
++	r0, er := C.dup(C.int(oldfd))
++	fd = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Exit(code int) {
++	C.exit(C.int(code))
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchdir(fd int) (err error) {
++	r0, er := C.fchdir(C.int(fd))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchmod(fd int, mode uint32) (err error) {
++	r0, er := C.fchmod(C.int(fd), C.uint(mode))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fdatasync(fd int) (err error) {
++	r0, er := C.fdatasync(C.int(fd))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fsync(fd int) (err error) {
++	r0, er := C.fsync(C.int(fd))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpgid(pid int) (pgid int, err error) {
++	r0, er := C.getpgid(C.int(pid))
++	pgid = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpgrp() (pid int) {
++	r0, _ := C.getpgrp()
++	pid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getpid() (pid int) {
++	r0, _ := C.getpid()
++	pid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getppid() (ppid int) {
++	r0, _ := C.getppid()
++	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, er := C.getpriority(C.int(which), C.int(who))
++	prio = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrusage(who int, rusage *Rusage) (err error) {
++	r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getsid(pid int) (sid int, err error) {
++	r0, er := C.getsid(C.int(pid))
++	sid = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Kill(pid int, sig Signal) (err error) {
++	r0, er := C.kill(C.int(pid), C.int(sig))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(buf) > 0 {
++		_p0 = &buf[0]
++	}
++	var _p1 int
++	_p1 = len(buf)
++	r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkdir(dirfd int, path string, mode uint32) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mkfifo(path string, mode uint32) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mknod(path string, mode uint32, dev int) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
++	r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))
++	fd = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))
++	fd = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Readlink(path string, buf []byte) (n int, err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	var _p1 *byte
++	if len(buf) > 0 {
++		_p1 = &buf[0]
++	}
++	var _p2 int
++	_p2 = len(buf)
++	r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(oldpath)))
++	_p1 := uintptr(unsafe.Pointer(C.CString(newpath)))
++	r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setdomainname(p []byte) (err error) {
++	var _p0 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sethostname(p []byte) (err error) {
++	var _p0 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setpgid(pid int, pgid int) (err error) {
++	r0, er := C.setpgid(C.int(pid), C.int(pgid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setsid() (pid int, err error) {
++	r0, er := C.setsid()
++	pid = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Settimeofday(tv *Timeval) (err error) {
++	r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setuid(uid int) (err error) {
++	r0, er := C.setuid(C.int(uid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setgid(uid int) (err error) {
++	r0, er := C.setgid(C.int(uid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setpriority(which int, who int, prio int) (err error) {
++	r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Sync() {
++	C.sync()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Times(tms *Tms) (ticks uintptr, err error) {
++	r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms))))
++	ticks = uintptr(r0)
++	if uintptr(r0) == ^uintptr(0) && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Umask(mask int) (oldmask int) {
++	r0, _ := C.umask(C.int(mask))
++	oldmask = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Uname(buf *Utsname) (err error) {
++	r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Unlink(path string) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.unlink(C.uintptr_t(_p0))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++	r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Dup2(oldfd int, newfd int) (err error) {
++	r0, er := C.dup2(C.int(oldfd), C.int(newfd))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fchown(fd int, uid int, gid int) (err error) {
++	r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstat(fd int, stat *Stat_t) (err error) {
++	r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, buf *Statfs_t) (err error) {
++	r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Ftruncate(fd int, length int64) (err error) {
++	r0, er := C.ftruncate(C.int(fd), C.longlong(length))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getegid() (egid int) {
++	r0, _ := C.getegid()
++	egid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Geteuid() (euid int) {
++	r0, _ := C.geteuid()
++	euid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getgid() (gid int) {
++	r0, _ := C.getgid()
++	gid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getuid() (uid int) {
++	r0, _ := C.getuid()
++	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) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Listen(s int, n int) (err error) {
++	r0, er := C.listen(C.int(s), C.int(n))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func lstat(path string, stat *Stat_t) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pause() (err error) {
++	r0, er := C.pause()
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++	r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask))))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setregid(rgid int, egid int) (err error) {
++	r0, er := C.setregid(C.int(rgid), C.int(egid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setreuid(ruid int, euid int) (err error) {
++	r0, er := C.setreuid(C.int(ruid), C.int(euid))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Shutdown(fd int, how int) (err error) {
++	r0, er := C.shutdown(C.int(fd), C.int(how))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags))
++	n = int64(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func stat(path string, statptr *Stat_t) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Statfs(path string, buf *Statfs_t) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Truncate(path string, length int64) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen)))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))
++	nn = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setgroups(n int, list *_Gid_t) (err error) {
++	r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.socket(C.int(domain), C.int(typ), C.int(proto))
++	fd = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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) {
++	r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++	r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++	r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	var _p1 int
++	_p1 = len(p)
++	r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen))))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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 *byte
++	if len(buf) > 0 {
++		_p0 = &buf[0]
++	}
++	var _p1 int
++	_p1 = len(buf)
++	r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen)))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func munmap(addr uintptr, length uintptr) (err error) {
++	r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Madvise(b []byte, advice int) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	var _p1 int
++	_p1 = len(b)
++	r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mprotect(b []byte, prot int) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	var _p1 int
++	_p1 = len(b)
++	r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mlock(b []byte) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	var _p1 int
++	_p1 = len(b)
++	r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Mlockall(flags int) (err error) {
++	r0, er := C.mlockall(C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Msync(b []byte, flags int) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	var _p1 int
++	_p1 = len(b)
++	r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Munlock(b []byte) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	var _p1 int
++	_p1 = len(b)
++	r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Munlockall() (err error) {
++	r0, er := C.munlockall()
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pipe(p *[2]_C_int) (err error) {
++	r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout))
++	n = int(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func gettimeofday(tv *Timeval, tzp *Timezone) (err error) {
++	r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t))))
++	tt = Time_t(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Utime(path string, buf *Utimbuf) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(path)))
++	r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getsystemcfg(label int) (n uint64) {
++	r0, _ := C.getsystemcfg(C.int(label))
++	n = uint64(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func umount(target string) (err error) {
++	_p0 := uintptr(unsafe.Pointer(C.CString(target)))
++	r0, er := C.umount(C.uintptr_t(_p0))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getrlimit(resource int, rlim *Rlimit) (err error) {
++	r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Setrlimit(resource int, rlim *Rlimit) (err error) {
++	r0, er := C.setrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim))))
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence))
++	off = int64(r0)
++	if r0 == -1 && er != nil {
++		err = er
++	}
++	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, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))
++	xaddr = uintptr(r0)
++	if uintptr(r0) == ^uintptr(0) && er != nil {
++		err = er
++	}
++	return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+similarity index 57%
+copy from vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+index 7b6c2c87..664b293b 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
+@@ -1,22 +1,23 @@
+-// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
++// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build netbsd,amd64
++// +build aix,ppc64
+ 
+ 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)
++func utimes(path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -25,8 +26,13 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ 
+ // 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)
++func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -35,9 +41,12 @@ func setgroups(ngid int, gid *_Gid_t) (err error) {
+ 
+ // 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)
++func getcwd(buf []byte) (err error) {
++	var _p0 *byte
++	if len(buf) > 0 {
++		_p0 = &buf[0]
++	}
++	_, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -47,7 +56,7 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ // 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)))
++	r0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -57,8 +66,13 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ 
+ // 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))
++func getdirent(fd int, buf []byte) (n int, err error) {
++	var _p0 *byte
++	if len(buf) > 0 {
++		_p0 = &buf[0]
++	}
++	r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -67,8 +81,9 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ 
+ // 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))
++func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) {
++	r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage)))
++	wpid = Pid_t(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -77,9 +92,8 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ 
+ // 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)
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, e1 := callioctl(fd, int(req), arg)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -88,8 +102,9 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ 
+ // 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)
++func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) {
++	r0, e1 := callfcntl(fd, cmd, uintptr(arg))
++	r = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -98,8 +113,8 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen
+ 
+ // 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)
++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) {
++	_, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -108,8 +123,9 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr)
+ 
+ // 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)))
++func fcntl(fd int, cmd int, arg int) (val int, err error) {
++	r0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg))
++	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -118,8 +134,13 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ 
+ // 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)))
++func Acct(path string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callacct(uintptr(unsafe.Pointer(_p0)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -128,8 +149,13 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ 
+ // 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)
++func Chdir(path string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callchdir(uintptr(unsafe.Pointer(_p0)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -138,8 +164,13 @@ func Shutdown(s int, how int) (err error) {
+ 
+ // 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)
++func Chroot(path string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callchroot(uintptr(unsafe.Pointer(_p0)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -148,15 +179,8 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+ 
+ // 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)
++func Close(fd int) (err error) {
++	_, e1 := callclose(fd)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -165,14 +189,9 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 
+ // 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))
++func Dup(oldfd int) (fd int, err error) {
++	r0, e1 := calldup(oldfd)
++	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -181,9 +200,20 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ 
+ // 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)
++func Exit(code int) {
++	callexit(code)
++	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 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -192,9 +222,8 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 
+ // 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)
++func Fchdir(fd int) (err error) {
++	_, e1 := callfchdir(fd)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -203,9 +232,8 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 
+ // 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)
++func Fchmod(fd int, mode uint32) (err error) {
++	_, e1 := callfchmod(fd, mode)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -214,14 +242,13 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
++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___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen))
++	_, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -230,13 +257,13 @@ func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr)
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func utimes(path string, timeval *[2]Timeval) (err error) {
++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 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++	_, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -245,8 +272,8 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++func Fdatasync(fd int) (err error) {
++	_, e1 := callfdatasync(fd)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -255,9 +282,8 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++func Fsync(fd int) (err error) {
++	_, e1 := callfsync(fd)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -266,14 +292,9 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Madvise(b []byte, behav 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(behav))
++func Getpgid(pid int) (pgid int, err error) {
++	r0, e1 := callgetpgid(pid)
++	pgid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -282,56 +303,33 @@ func Madvise(b []byte, behav int) (err error) {
+ 
+ // 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)
+-	}
++func Getpgrp() (pid int) {
++	r0, _ := callgetpgrp()
++	pid = int(r0)
+ 	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)
+-	}
++func Getpid() (pid int) {
++	r0, _ := callgetpid()
++	pid = int(r0)
+ 	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)
+-	}
++func Getppid() (ppid int) {
++	r0, _ := callgetppid()
++	ppid = int(r0)
+ 	return
+ }
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++func Getpriority(which int, who int) (prio int, err error) {
++	r0, e1 := callgetpriority(which, who)
++	prio = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -340,14 +338,8 @@ func Msync(b []byte, flags int) (err error) {
+ 
+ // 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)
++func Getrusage(who int, rusage *Rusage) (err error) {
++	_, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -356,8 +348,9 @@ func Munlock(b []byte) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Getsid(pid int) (sid int, err error) {
++	r0, e1 := callgetsid(pid)
++	sid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -366,10 +359,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++func Kill(pid int, sig Signal) (err error) {
++	_, e1 := callkill(pid, int(sig))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -378,14 +369,12 @@ func pipe() (fd1 int, fd2 int, err error) {
+ 
+ // 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
++func Klogctl(typ int, buf []byte) (n int, err error) {
++	var _p0 *byte
+ 	if len(buf) > 0 {
+-		_p0 = unsafe.Pointer(&buf[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
++		_p0 = &buf[0]
+ 	}
+-	r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf)))
++	r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -395,13 +384,13 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Access(path string, mode uint32) (err error) {
++func Mkdir(dirfd int, 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)
++	_, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -410,8 +399,13 @@ func Access(path string, mode uint32) (err error) {
+ 
+ // 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)
++func Mkdirat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -420,13 +414,13 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Chdir(path string) (err error) {
++func Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -435,13 +429,13 @@ func Chdir(path string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Chflags(path string, flags int) (err error) {
++func Mknod(path string, mode uint32, dev 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)
++	_, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -450,13 +444,13 @@ func Chflags(path string, flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Chmod(path string, mode uint32) (err error) {
++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -465,13 +459,8 @@ func Chmod(path string, mode uint32) (err error) {
+ 
+ // 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))
++func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
++	_, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -480,13 +469,14 @@ func Chown(path string, uid int, gid int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Chroot(path string) (err error) {
++func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	r0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm)
++	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -495,8 +485,14 @@ func Chroot(path string) (err error) {
+ 
+ // 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)
++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 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode)
++	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -505,9 +501,13 @@ func Close(fd int) (err error) {
+ 
+ // 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)
++func read(fd int, p []byte) (n int, err error) {
++	var _p0 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -516,8 +516,18 @@ func Dup(fd int) (nfd int, err error) {
+ 
+ // 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)
++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 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -526,15 +536,32 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Exit(code int) {
+-	Syscall(SYS_EXIT, uintptr(code), 0, 0)
++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 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), 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 Fchdir(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
++func Setdomainname(p []byte) (err error) {
++	var _p0 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	_, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -543,8 +570,12 @@ func Fchdir(fd int) (err error) {
+ 
+ // 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)
++func Sethostname(p []byte) (err error) {
++	var _p0 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	_, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -553,8 +584,8 @@ func Fchflags(fd int, flags int) (err error) {
+ 
+ // 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)
++func Setpgid(pid int, pgid int) (err error) {
++	_, e1 := callsetpgid(pid, pgid)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -563,8 +594,9 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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))
++func Setsid() (pid int, err error) {
++	r0, e1 := callsetsid()
++	pid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -573,8 +605,8 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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)
++func Settimeofday(tv *Timeval) (err error) {
++	_, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -583,9 +615,8 @@ func Flock(fd int, how int) (err error) {
+ 
+ // 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)
++func Setuid(uid int) (err error) {
++	_, e1 := callsetuid(uid)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -594,8 +625,8 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // 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)
++func Setgid(uid int) (err error) {
++	_, e1 := callsetgid(uid)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -604,8 +635,8 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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)
++func Setpriority(which int, who int, prio int) (err error) {
++	_, e1 := callsetpriority(which, who, prio)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -614,8 +645,13 @@ func Fsync(fd int) (err error) {
+ 
+ // 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))
++func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -624,33 +660,34 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
++func Sync() {
++	callsync()
+ 	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)
++func Times(tms *Tms) (ticks uintptr, err error) {
++	r0, e1 := calltimes(uintptr(unsafe.Pointer(tms)))
++	ticks = uintptr(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
+ 	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)
++func Umask(mask int) (oldmask int) {
++	r0, _ := callumask(mask)
++	oldmask = 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)
++func Uname(buf *Utsname) (err error) {
++	_, e1 := calluname(uintptr(unsafe.Pointer(buf)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -659,33 +696,53 @@ func Getpgid(pid int) (pgid int, err error) {
+ 
+ // 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)
++func Unlink(path string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callunlink(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 Getpid() (pid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
+-	pid = int(r0)
++func Unlinkat(dirfd int, path string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
+ 	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)
++func Ustat(dev int, ubuf *Ustat_t) (err error) {
++	_, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf)))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
+ 	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)
++func write(fd int, p []byte) (n int, err error) {
++	var _p0 *byte
++	if len(p) > 0 {
++		_p0 = &p[0]
++	}
++	r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -694,8 +751,9 @@ func Getpriority(which int, who int) (prio int, err error) {
+ 
+ // 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)
++func readlen(fd int, p *byte, np int) (n int, err error) {
++	r0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -704,8 +762,9 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // 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)
++func writelen(fd int, p *byte, np int) (n int, err error) {
++	r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -714,9 +773,8 @@ func Getrusage(who int, rusage *Rusage) (err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, e1 := calldup2(oldfd, newfd)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -725,8 +783,8 @@ func Getsid(pid int) (sid int, err error) {
+ 
+ // 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)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, e1 := callposix_fadvise64(fd, offset, length, advice)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -735,24 +793,33 @@ func Gettimeofday(tv *Timeval) (err error) {
+ 
+ // 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)
++func Fchown(fd int, uid int, gid int) (err error) {
++	_, e1 := callfchown(fd, uid, gid)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
+ 	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)
++func fstat(fd int, stat *Stat_t) (err error) {
++	_, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat)))
++	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 syscall.Signal) (err error) {
+-	_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0)
++func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -761,9 +828,8 @@ func Kill(pid int, signum syscall.Signal) (err error) {
+ 
+ // 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)
++func Fstatfs(fd int, buf *Statfs_t) (err error) {
++	_, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -772,13 +838,8 @@ func Kqueue() (fd int, err error) {
+ 
+ // 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))
++func Ftruncate(fd int, length int64) (err error) {
++	_, e1 := callftruncate(fd, length)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -787,18 +848,45 @@ func Lchown(path string, uid int, gid int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Link(path string, link string) (err error) {
++func Getegid() (egid int) {
++	r0, _ := callgetegid()
++	egid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Geteuid() (euid int) {
++	r0, _ := callgeteuid()
++	euid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getgid() (gid int) {
++	r0, _ := callgetgid()
++	gid = int(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getuid() (uid int) {
++	r0, _ := callgetuid()
++	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
+ 	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(link)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -807,8 +895,8 @@ func Link(path string, link string) (err error) {
+ 
+ // 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)
++func Listen(s int, n int) (err error) {
++	_, e1 := calllisten(s, n)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -817,13 +905,13 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++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)
++	_, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -832,13 +920,8 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ 
+ // 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)
++func Pause() (err error) {
++	_, e1 := callpause()
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -847,13 +930,13 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mkfifo(path string, mode uint32) (err error) {
++func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
++	if len(p) > 0 {
++		_p0 = &p[0]
+ 	}
+-	_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -862,13 +945,13 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
++	if len(p) > 0 {
++		_p0 = &p[0]
+ 	}
+-	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++	r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -877,8 +960,9 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -887,14 +971,9 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ 
+ // 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)
++func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
++	r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -903,14 +982,8 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // 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)
++func Setregid(rgid int, egid int) (err error) {
++	_, e1 := callsetregid(rgid, egid)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -919,15 +992,8 @@ func Pathconf(path string, name int) (val int, err error) {
+ 
+ // 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)
++func Setreuid(ruid int, euid int) (err error) {
++	_, e1 := callsetreuid(ruid, euid)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -936,15 +1002,8 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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)
++func Shutdown(fd int, how int) (err error) {
++	_, e1 := callshutdown(fd, how)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -953,15 +1012,9 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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)
++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
++	r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags)
++	n = int64(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -970,20 +1023,13 @@ func read(fd int, p []byte) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Readlink(path string, buf []byte) (n int, err error) {
++func stat(path string, statptr *Stat_t) (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)
++	_, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -992,18 +1038,13 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Rename(from string, to string) (err error) {
++func Statfs(path string, buf *Statfs_t) (err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(from)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(to)
++	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1012,13 +1053,13 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Revoke(path string) (err error) {
++func Truncate(path string, length int64) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1027,13 +1068,8 @@ func Revoke(path string) (err error) {
+ 
+ // 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)
++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++	_, e1 := callbind(s, uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1042,9 +1078,8 @@ func Rmdir(path string) (err error) {
+ 
+ // 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)
++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
++	_, e1 := callconnect(s, uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1053,8 +1088,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++func getgroups(n int, list *_Gid_t) (nn int, err error) {
++	r0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list)))
++	nn = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1063,8 +1099,8 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+ 
+ // 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)
++func setgroups(n int, list *_Gid_t) (err error) {
++	_, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1073,8 +1109,8 @@ func Setegid(egid int) (err error) {
+ 
+ // 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)
++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
++	_, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1083,8 +1119,8 @@ func Seteuid(euid int) (err error) {
+ 
+ // 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)
++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
++	_, e1 := callsetsockopt(s, level, name, uintptr(val), vallen)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1093,8 +1129,9 @@ func Setgid(gid int) (err error) {
+ 
+ // 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)
++func socket(domain int, typ int, proto int) (fd int, err error) {
++	r0, e1 := callsocket(domain, typ, proto)
++	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1103,8 +1140,8 @@ func Setpgid(pid int, pgid int) (err error) {
+ 
+ // 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))
++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
++	_, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1113,8 +1150,8 @@ func Setpriority(which int, who int, prio int) (err error) {
+ 
+ // 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)
++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++	_, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1123,8 +1160,8 @@ func Setregid(rgid int, egid int) (err error) {
+ 
+ // 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)
++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
++	_, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1133,8 +1170,13 @@ func Setreuid(ruid int, euid int) (err error) {
+ 
+ // 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)
++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 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1143,9 +1185,12 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // 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)
++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 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1154,8 +1199,9 @@ func Setsid() (pid int, err error) {
+ 
+ // 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)
++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++	r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1164,8 +1210,9 @@ func Settimeofday(tp *Timeval) (err error) {
+ 
+ // 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)
++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
++	r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1174,13 +1221,8 @@ func Setuid(uid int) (err error) {
+ 
+ // 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)
++func munmap(addr uintptr, length uintptr) (err error) {
++	_, e1 := callmunmap(addr, length)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1189,18 +1231,12 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Symlink(path string, link string) (err error) {
++func Madvise(b []byte, advice int) (err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(link)
+-	if err != nil {
+-		return
++	if len(b) > 0 {
++		_p0 = &b[0]
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1209,8 +1245,12 @@ func Symlink(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Sync() (err error) {
+-	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++func Mprotect(b []byte, prot int) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	_, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1219,13 +1259,12 @@ func Sync() (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Truncate(path string, length int64) (err error) {
++func Mlock(b []byte) (err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
++	if len(b) > 0 {
++		_p0 = &b[0]
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
++	_, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1234,21 +1273,22 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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)
++func Mlockall(flags int) (err error) {
++	_, e1 := callmlockall(flags)
++	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) {
++func Msync(b []byte, flags int) (err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
++	if len(b) > 0 {
++		_p0 = &b[0]
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1257,13 +1297,12 @@ func Unlink(path string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Unmount(path string, flags int) (err error) {
++func Munlock(b []byte) (err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
++	if len(b) > 0 {
++		_p0 = &b[0]
+ 	}
+-	_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1272,15 +1311,8 @@ func Unmount(path string, flags int) (err error) {
+ 
+ // 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)
++func Munlockall() (err error) {
++	_, e1 := callmunlockall()
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1289,9 +1321,8 @@ func write(fd int, p []byte) (n int, err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, e1 := callpipe(uintptr(unsafe.Pointer(p)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1300,8 +1331,9 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ 
+ // 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)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++	r0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1310,9 +1342,8 @@ func munmap(addr uintptr, length uintptr) (err error) {
+ 
+ // 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)
++func gettimeofday(tv *Timeval, tzp *Timezone) (err error) {
++	_, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1321,9 +1352,9 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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)
++func Time(t *Time_t) (tt Time_t, err error) {
++	r0, e1 := calltime(uintptr(unsafe.Pointer(t)))
++	tt = Time_t(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1332,13 +1363,78 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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) {
++func Utime(path string, buf *Utimbuf) (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)
++	_, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Getsystemcfg(label int) (n uint64) {
++	r0, _ := callgetsystemcfg(label)
++	n = uint64(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func umount(target string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(target)
++	if err != nil {
++		return
++	}
++	_, e1 := callumount(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 Getrlimit(resource int, rlim *Rlimit) (err error) {
++	_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
++	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 := callsetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
++	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 := calllseek(fd, offset, 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 mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
++	r0, e1 := callmmap64(addr, length, prot, flags, fd, offset)
++	xaddr = uintptr(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+new file mode 100644
+index 00000000..4b3a8ad7
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
+@@ -0,0 +1,1192 @@
++// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build aix,ppc64
++// +build !gccgo
++
++package unix
++
++import (
++	"unsafe"
++)
++
++//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fsync fsync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
++//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o"
++
++//go:linkname libc_utimes libc_utimes
++//go:linkname libc_utimensat libc_utimensat
++//go:linkname libc_getcwd libc_getcwd
++//go:linkname libc_accept libc_accept
++//go:linkname libc_getdirent libc_getdirent
++//go:linkname libc_wait4 libc_wait4
++//go:linkname libc_ioctl libc_ioctl
++//go:linkname libc_fcntl libc_fcntl
++//go:linkname libc_acct libc_acct
++//go:linkname libc_chdir libc_chdir
++//go:linkname libc_chroot libc_chroot
++//go:linkname libc_close libc_close
++//go:linkname libc_dup libc_dup
++//go:linkname libc_exit libc_exit
++//go:linkname libc_faccessat libc_faccessat
++//go:linkname libc_fchdir libc_fchdir
++//go:linkname libc_fchmod libc_fchmod
++//go:linkname libc_fchmodat libc_fchmodat
++//go:linkname libc_fchownat libc_fchownat
++//go:linkname libc_fdatasync libc_fdatasync
++//go:linkname libc_fsync libc_fsync
++//go:linkname libc_getpgid libc_getpgid
++//go:linkname libc_getpgrp libc_getpgrp
++//go:linkname libc_getpid libc_getpid
++//go:linkname libc_getppid libc_getppid
++//go:linkname libc_getpriority libc_getpriority
++//go:linkname libc_getrusage libc_getrusage
++//go:linkname libc_getsid libc_getsid
++//go:linkname libc_kill libc_kill
++//go:linkname libc_syslog libc_syslog
++//go:linkname libc_mkdir libc_mkdir
++//go:linkname libc_mkdirat libc_mkdirat
++//go:linkname libc_mkfifo libc_mkfifo
++//go:linkname libc_mknod libc_mknod
++//go:linkname libc_mknodat libc_mknodat
++//go:linkname libc_nanosleep libc_nanosleep
++//go:linkname libc_open64 libc_open64
++//go:linkname libc_openat libc_openat
++//go:linkname libc_read libc_read
++//go:linkname libc_readlink libc_readlink
++//go:linkname libc_renameat libc_renameat
++//go:linkname libc_setdomainname libc_setdomainname
++//go:linkname libc_sethostname libc_sethostname
++//go:linkname libc_setpgid libc_setpgid
++//go:linkname libc_setsid libc_setsid
++//go:linkname libc_settimeofday libc_settimeofday
++//go:linkname libc_setuid libc_setuid
++//go:linkname libc_setgid libc_setgid
++//go:linkname libc_setpriority libc_setpriority
++//go:linkname libc_statx libc_statx
++//go:linkname libc_sync libc_sync
++//go:linkname libc_times libc_times
++//go:linkname libc_umask libc_umask
++//go:linkname libc_uname libc_uname
++//go:linkname libc_unlink libc_unlink
++//go:linkname libc_unlinkat libc_unlinkat
++//go:linkname libc_ustat libc_ustat
++//go:linkname libc_write libc_write
++//go:linkname libc_dup2 libc_dup2
++//go:linkname libc_posix_fadvise64 libc_posix_fadvise64
++//go:linkname libc_fchown libc_fchown
++//go:linkname libc_fstat libc_fstat
++//go:linkname libc_fstatat libc_fstatat
++//go:linkname libc_fstatfs libc_fstatfs
++//go:linkname libc_ftruncate libc_ftruncate
++//go:linkname libc_getegid libc_getegid
++//go:linkname libc_geteuid libc_geteuid
++//go:linkname libc_getgid libc_getgid
++//go:linkname libc_getuid libc_getuid
++//go:linkname libc_lchown libc_lchown
++//go:linkname libc_listen libc_listen
++//go:linkname libc_lstat libc_lstat
++//go:linkname libc_pause libc_pause
++//go:linkname libc_pread64 libc_pread64
++//go:linkname libc_pwrite64 libc_pwrite64
++//go:linkname libc_select libc_select
++//go:linkname libc_pselect libc_pselect
++//go:linkname libc_setregid libc_setregid
++//go:linkname libc_setreuid libc_setreuid
++//go:linkname libc_shutdown libc_shutdown
++//go:linkname libc_splice libc_splice
++//go:linkname libc_stat libc_stat
++//go:linkname libc_statfs libc_statfs
++//go:linkname libc_truncate libc_truncate
++//go:linkname libc_bind libc_bind
++//go:linkname libc_connect libc_connect
++//go:linkname libc_getgroups libc_getgroups
++//go:linkname libc_setgroups libc_setgroups
++//go:linkname libc_getsockopt libc_getsockopt
++//go:linkname libc_setsockopt libc_setsockopt
++//go:linkname libc_socket libc_socket
++//go:linkname libc_socketpair libc_socketpair
++//go:linkname libc_getpeername libc_getpeername
++//go:linkname libc_getsockname libc_getsockname
++//go:linkname libc_recvfrom libc_recvfrom
++//go:linkname libc_sendto libc_sendto
++//go:linkname libc_nrecvmsg libc_nrecvmsg
++//go:linkname libc_nsendmsg libc_nsendmsg
++//go:linkname libc_munmap libc_munmap
++//go:linkname libc_madvise libc_madvise
++//go:linkname libc_mprotect libc_mprotect
++//go:linkname libc_mlock libc_mlock
++//go:linkname libc_mlockall libc_mlockall
++//go:linkname libc_msync libc_msync
++//go:linkname libc_munlock libc_munlock
++//go:linkname libc_munlockall libc_munlockall
++//go:linkname libc_pipe libc_pipe
++//go:linkname libc_poll libc_poll
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:linkname libc_time libc_time
++//go:linkname libc_utime libc_utime
++//go:linkname libc_getsystemcfg libc_getsystemcfg
++//go:linkname libc_umount libc_umount
++//go:linkname libc_getrlimit libc_getrlimit
++//go:linkname libc_setrlimit libc_setrlimit
++//go:linkname libc_lseek libc_lseek
++//go:linkname libc_mmap64 libc_mmap64
++
++type syscallFunc uintptr
++
++var (
++	libc_utimes,
++	libc_utimensat,
++	libc_getcwd,
++	libc_accept,
++	libc_getdirent,
++	libc_wait4,
++	libc_ioctl,
++	libc_fcntl,
++	libc_acct,
++	libc_chdir,
++	libc_chroot,
++	libc_close,
++	libc_dup,
++	libc_exit,
++	libc_faccessat,
++	libc_fchdir,
++	libc_fchmod,
++	libc_fchmodat,
++	libc_fchownat,
++	libc_fdatasync,
++	libc_fsync,
++	libc_getpgid,
++	libc_getpgrp,
++	libc_getpid,
++	libc_getppid,
++	libc_getpriority,
++	libc_getrusage,
++	libc_getsid,
++	libc_kill,
++	libc_syslog,
++	libc_mkdir,
++	libc_mkdirat,
++	libc_mkfifo,
++	libc_mknod,
++	libc_mknodat,
++	libc_nanosleep,
++	libc_open64,
++	libc_openat,
++	libc_read,
++	libc_readlink,
++	libc_renameat,
++	libc_setdomainname,
++	libc_sethostname,
++	libc_setpgid,
++	libc_setsid,
++	libc_settimeofday,
++	libc_setuid,
++	libc_setgid,
++	libc_setpriority,
++	libc_statx,
++	libc_sync,
++	libc_times,
++	libc_umask,
++	libc_uname,
++	libc_unlink,
++	libc_unlinkat,
++	libc_ustat,
++	libc_write,
++	libc_dup2,
++	libc_posix_fadvise64,
++	libc_fchown,
++	libc_fstat,
++	libc_fstatat,
++	libc_fstatfs,
++	libc_ftruncate,
++	libc_getegid,
++	libc_geteuid,
++	libc_getgid,
++	libc_getuid,
++	libc_lchown,
++	libc_listen,
++	libc_lstat,
++	libc_pause,
++	libc_pread64,
++	libc_pwrite64,
++	libc_select,
++	libc_pselect,
++	libc_setregid,
++	libc_setreuid,
++	libc_shutdown,
++	libc_splice,
++	libc_stat,
++	libc_statfs,
++	libc_truncate,
++	libc_bind,
++	libc_connect,
++	libc_getgroups,
++	libc_setgroups,
++	libc_getsockopt,
++	libc_setsockopt,
++	libc_socket,
++	libc_socketpair,
++	libc_getpeername,
++	libc_getsockname,
++	libc_recvfrom,
++	libc_sendto,
++	libc_nrecvmsg,
++	libc_nsendmsg,
++	libc_munmap,
++	libc_madvise,
++	libc_mprotect,
++	libc_mlock,
++	libc_mlockall,
++	libc_msync,
++	libc_munlock,
++	libc_munlockall,
++	libc_pipe,
++	libc_poll,
++	libc_gettimeofday,
++	libc_time,
++	libc_utime,
++	libc_getsystemcfg,
++	libc_umount,
++	libc_getrlimit,
++	libc_setrlimit,
++	libc_lseek,
++	libc_mmap64 syscallFunc
++)
++
++// Implemented in runtime/syscall_aix.go.
++func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callclose(fd int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup(oldfd int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callexit(code int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchdir(fd int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfdatasync(fd int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfsync(fd int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgid(pid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgrp() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetppid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsid(pid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callkill(pid int, sig int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetuid(uid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgid(uid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsync() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltimes(tms uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumask(mask int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calluname(buf uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetegid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgeteuid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetuid() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllisten(s int, n int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpause() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags))
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlockall(flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlockall() (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpipe(p uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltime(t uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {
++	r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset))
++	return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+new file mode 100644
+index 00000000..cde4dbc5
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
+@@ -0,0 +1,1070 @@
++// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build aix,ppc64
++// +build gccgo
++
++package unix
++
++/*
++#include <stdint.h>
++int utimes(uintptr_t, uintptr_t);
++int utimensat(int, uintptr_t, uintptr_t, int);
++int getcwd(uintptr_t, size_t);
++int accept(int, uintptr_t, uintptr_t);
++int getdirent(int, uintptr_t, size_t);
++int wait4(int, uintptr_t, int, uintptr_t);
++int ioctl(int, int, uintptr_t);
++int fcntl(uintptr_t, int, uintptr_t);
++int acct(uintptr_t);
++int chdir(uintptr_t);
++int chroot(uintptr_t);
++int close(int);
++int dup(int);
++void exit(int);
++int faccessat(int, uintptr_t, unsigned int, int);
++int fchdir(int);
++int fchmod(int, unsigned int);
++int fchmodat(int, uintptr_t, unsigned int, int);
++int fchownat(int, uintptr_t, int, int, int);
++int fdatasync(int);
++int fsync(int);
++int getpgid(int);
++int getpgrp();
++int getpid();
++int getppid();
++int getpriority(int, int);
++int getrusage(int, uintptr_t);
++int getsid(int);
++int kill(int, int);
++int syslog(int, uintptr_t, size_t);
++int mkdir(int, uintptr_t, unsigned int);
++int mkdirat(int, uintptr_t, unsigned int);
++int mkfifo(uintptr_t, unsigned int);
++int mknod(uintptr_t, unsigned int, int);
++int mknodat(int, uintptr_t, unsigned int, int);
++int nanosleep(uintptr_t, uintptr_t);
++int open64(uintptr_t, int, unsigned int);
++int openat(int, uintptr_t, int, unsigned int);
++int read(int, uintptr_t, size_t);
++int readlink(uintptr_t, uintptr_t, size_t);
++int renameat(int, uintptr_t, int, uintptr_t);
++int setdomainname(uintptr_t, size_t);
++int sethostname(uintptr_t, size_t);
++int setpgid(int, int);
++int setsid();
++int settimeofday(uintptr_t);
++int setuid(int);
++int setgid(int);
++int setpriority(int, int, int);
++int statx(int, uintptr_t, int, int, uintptr_t);
++int sync();
++uintptr_t times(uintptr_t);
++int umask(int);
++int uname(uintptr_t);
++int unlink(uintptr_t);
++int unlinkat(int, uintptr_t, int);
++int ustat(int, uintptr_t);
++int write(int, uintptr_t, size_t);
++int dup2(int, int);
++int posix_fadvise64(int, long long, long long, int);
++int fchown(int, int, int);
++int fstat(int, uintptr_t);
++int fstatat(int, uintptr_t, uintptr_t, int);
++int fstatfs(int, uintptr_t);
++int ftruncate(int, long long);
++int getegid();
++int geteuid();
++int getgid();
++int getuid();
++int lchown(uintptr_t, int, int);
++int listen(int, int);
++int lstat(uintptr_t, uintptr_t);
++int pause();
++int pread64(int, uintptr_t, size_t, long long);
++int pwrite64(int, uintptr_t, size_t, long long);
++#define c_select select
++int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
++int setregid(int, int);
++int setreuid(int, int);
++int shutdown(int, int);
++long long splice(int, uintptr_t, int, uintptr_t, int, int);
++int stat(uintptr_t, uintptr_t);
++int statfs(uintptr_t, uintptr_t);
++int truncate(uintptr_t, long long);
++int bind(int, uintptr_t, uintptr_t);
++int connect(int, uintptr_t, uintptr_t);
++int getgroups(int, uintptr_t);
++int setgroups(int, uintptr_t);
++int getsockopt(int, int, int, uintptr_t, uintptr_t);
++int setsockopt(int, int, int, uintptr_t, uintptr_t);
++int socket(int, int, int);
++int socketpair(int, int, int, uintptr_t);
++int getpeername(int, uintptr_t, uintptr_t);
++int getsockname(int, uintptr_t, uintptr_t);
++int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t);
++int nrecvmsg(int, uintptr_t, int);
++int nsendmsg(int, uintptr_t, int);
++int munmap(uintptr_t, uintptr_t);
++int madvise(uintptr_t, size_t, int);
++int mprotect(uintptr_t, size_t, int);
++int mlock(uintptr_t, size_t);
++int mlockall(int);
++int msync(uintptr_t, size_t, int);
++int munlock(uintptr_t, size_t);
++int munlockall();
++int pipe(uintptr_t);
++int poll(uintptr_t, int, int);
++int gettimeofday(uintptr_t, uintptr_t);
++int time(uintptr_t);
++int utime(uintptr_t, uintptr_t);
++unsigned long long getsystemcfg(int);
++int umount(uintptr_t);
++int getrlimit(int, uintptr_t);
++int setrlimit(int, uintptr_t);
++long long lseek(int, long long, int);
++uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long);
++
++*/
++import "C"
++import (
++	"syscall"
++)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.acct(C.uintptr_t(_p0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.chdir(C.uintptr_t(_p0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.chroot(C.uintptr_t(_p0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callclose(fd int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.close(C.int(fd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup(oldfd int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.dup(C.int(oldfd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callexit(code int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.exit(C.int(code)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchdir(fd int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fchdir(C.int(fd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfdatasync(fd int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fdatasync(C.int(fd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfsync(fd int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fsync(C.int(fd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgid(pid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getpgid(C.int(pid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpgrp() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getpgrp())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getpid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetppid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getppid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getpriority(C.int(which), C.int(who)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsid(pid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getsid(C.int(pid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callkill(pid int, sig int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.kill(C.int(pid), C.int(sig)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setsid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.settimeofday(C.uintptr_t(tv)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetuid(uid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setuid(C.int(uid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgid(uid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setgid(C.int(uid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsync() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.sync())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltimes(tms uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.times(C.uintptr_t(tms)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumask(mask int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.umask(C.int(mask)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calluname(buf uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.uname(C.uintptr_t(buf)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.unlink(C.uintptr_t(_p0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetegid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getegid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgeteuid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.geteuid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getgid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetuid() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getuid())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllisten(s int, n int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.listen(C.int(s), C.int(n)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpause() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.pause())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setregid(C.int(rgid), C.int(egid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.shutdown(C.int(fd), C.int(how)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmlockall(flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mlockall(C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmunlockall() (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.munlockall())
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpipe(p uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.pipe(C.uintptr_t(p)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calltime(t uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.time(C.uintptr_t(t)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getsystemcfg(C.int(label)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.umount(C.uintptr_t(_p0)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.setrlimit(C.int(resource), C.uintptr_t(rlim)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence)))
++	e1 = syscall.GetErrno()
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) {
++	r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)))
++	e1 = syscall.GetErrno()
++	return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+similarity index 85%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+index 7a409745..c1cc0a41 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
++// go run mksyscall.go -l32 -tags darwin,386,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.1_11.go syscall_darwin_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,arm
++// +build darwin,386,!go1.12
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	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, size int, position uint32, options 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
++	}
++	_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	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, options 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
++	}
++	_, _, e1 := Syscall(SYS_REMOVEXATTR, 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 fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	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, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 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 kill(pid int, signum int, posix int) (err error) {
+ 	_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), 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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // 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 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // 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)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+ 
+ // 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)
+@@ -1598,6 +1682,33 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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 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 gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ 	r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+ 	sec = int32(r0)
+@@ -1607,3 +1718,94 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ 	}
+ 	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 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_FSTATAT64, 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, 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 getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), 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 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 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
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
+new file mode 100644
+index 00000000..e263fbdb
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -l32 -tags darwin,386,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,386,go1.13
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++	r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++	res = Errno(r0)
++	return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
+new file mode 100644
+index 00000000..00da1ebf
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go 386
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+index 10491e9e..a3fc4900 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
++// go run mksyscall.go -l32 -tags darwin,386,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,386
++// +build darwin,386,go1.12
+ 
+ package unix
+ 
+@@ -15,7 +15,7 @@ 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ 	return
+ }
+ 
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ 	wpid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ 	return
+ }
+ 
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	} 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), 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)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	return
+ }
+ 
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++	_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+ 
+-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
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++	_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++	_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ 	r = int(r0)
+ 	w = int(r1)
+ 	if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ 	return
+ }
+ 
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options 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
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options 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
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++	val = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_sysctl_trampoline), 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
+ }
+ 
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ 	nfd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ 	return
+ }
+ 
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exit(code int) {
+-	Syscall(SYS_EXIT, uintptr(code), 0, 0)
++	syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ 	return
+ }
+ 
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+ 
+-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
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Fsync(fd int) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), 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 libc_fsync_trampoline()
+ 
+-func Fsync(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+ 
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), 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 libc_ftruncate_trampoline()
+ 
+-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
+-}
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getdtablesize() (size int) {
+-	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++	r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ 	size = int(r0)
+ 	return
+ }
+ 
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+ 
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+ 
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ 	pgid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ 	return
+ }
+ 
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpgrp() (pgrp int) {
+-	r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ 	pgrp = int(r0)
+ 	return
+ }
+ 
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpid() (pid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	return
+ }
+ 
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getppid() (ppid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ 	ppid = int(r0)
+ 	return
+ }
+ 
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ 	prio = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ 	return
+ }
+ 
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ 	sid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ 	return
+ }
+ 
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Issetugid() (tainted bool) {
+-	r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ 	tainted = bool(r0 != 0)
+ 	return
+ }
+ 
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ 	return
+ }
+ 
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), 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 libc_listen_trampoline()
+ 
+-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
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++	_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++	r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++	r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	return
+ }
+ 
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+ 	newoffset = int64(int64(r1)<<32 | int64(r0))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 	return
+ }
+ 
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), 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
+ }
+ 
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ 	return
+ }
+ 
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), 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 libc_settimeofday_trampoline()
+ 
+-func Setuid(uid int) (err error) {
+-	_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Setuid(uid int) (err error) {
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), 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 libc_setuid_trampoline()
+ 
+-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
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++	_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Sync() (err error) {
+-	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
++	_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ 	oldmask = int(r0)
+ 	return
+ }
+ 
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), 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)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ 	return
+ }
+ 
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1598,8 +2342,23 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_ptrace_trampoline()
++
++//go:linkname libc_ptrace libc_ptrace
++//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib"
++
++// 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ 	sec = int32(r0)
+ 	usec = int32(r1)
+ 	if e1 != 0 {
+@@ -1607,3 +2366,134 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ 	}
+ 	return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstat64_trampoline()
++
++//go:linkname libc_fstat64 libc_fstat64
++//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatat64_trampoline()
++
++//go:linkname libc_fstatat64 libc_fstatat64
++//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatfs64_trampoline()
++
++//go:linkname libc_fstatfs64 libc_fstatfs64
++//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getfsstat64_trampoline()
++
++//go:linkname libc_getfsstat64 libc_getfsstat64
++//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_lstat64_trampoline()
++
++//go:linkname libc_lstat64 libc_lstat64
++//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_stat64_trampoline()
++
++//go:linkname libc_stat64 libc_stat64
++//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_statfs64_trampoline()
++
++//go:linkname libc_statfs64 libc_statfs64
++//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+new file mode 100644
+index 00000000..6836a412
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.s
+@@ -0,0 +1,284 @@
++// go run mkasm_darwin.go 386
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munmap(SB)
++TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ptrace(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_gettimeofday(SB)
++TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstat64(SB)
++TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatat64(SB)
++TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatfs64(SB)
++TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat64(SB)
++TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lstat64(SB)
++TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_stat64(SB)
++TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_statfs64(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+similarity index 85%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+index 07c6ebc9..f8e5c37c 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
++// go run mksyscall.go -tags darwin,amd64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.1_11.go syscall_darwin_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,arm64
++// +build darwin,amd64,!go1.12
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	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, size int, position uint32, options 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
++	}
++	_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	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, options 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
++	}
++	_, _, e1 := Syscall(SYS_REMOVEXATTR, 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 fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	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, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 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 kill(pid int, signum int, posix int) (err error) {
+ 	_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++	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)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // 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 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // 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)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+ 
+ // 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)
+@@ -1598,6 +1682,33 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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 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 gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ 	r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0)
+ 	sec = int64(r0)
+@@ -1607,3 +1718,94 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ 	}
+ 	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 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_FSTATAT64, 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, 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 getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(buf), uintptr(size), 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 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 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
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
+new file mode 100644
+index 00000000..314042a9
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -tags darwin,amd64,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,amd64,go1.13
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++	r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++	res = Errno(r0)
++	return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
+new file mode 100644
+index 00000000..d671e831
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go amd64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+index 5f1f6bfe..50d6437e 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go
++// go run mksyscall.go -tags darwin,amd64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,amd64
++// +build darwin,amd64,go1.12
+ 
+ package unix
+ 
+@@ -15,7 +15,7 @@ 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ 	return
+ }
+ 
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ 	wpid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ 	return
+ }
+ 
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	} 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), 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)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	return
+ }
+ 
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++	_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+ 
+-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
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++	_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++	_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ 	r = int(r0)
+ 	w = int(r1)
+ 	if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ 	return
+ }
+ 
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options 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
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options 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
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++	val = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_sysctl_trampoline), 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
+ }
+ 
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ 	nfd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ 	return
+ }
+ 
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exit(code int) {
+-	Syscall(SYS_EXIT, uintptr(code), 0, 0)
++	syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ 	return
+ }
+ 
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+ 
+-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
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Fsync(fd int) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), 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 libc_fsync_trampoline()
+ 
+-func Fsync(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), 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 libc_ftruncate_trampoline()
+ 
+-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
+-}
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getdtablesize() (size int) {
+-	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++	r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ 	size = int(r0)
+ 	return
+ }
+ 
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+ 
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+ 
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ 	pgid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ 	return
+ }
+ 
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpgrp() (pgrp int) {
+-	r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ 	pgrp = int(r0)
+ 	return
+ }
+ 
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpid() (pid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	return
+ }
+ 
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getppid() (ppid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ 	ppid = int(r0)
+ 	return
+ }
+ 
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ 	prio = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ 	return
+ }
+ 
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ 	sid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ 	return
+ }
+ 
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Issetugid() (tainted bool) {
+-	r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ 	tainted = bool(r0 != 0)
+ 	return
+ }
+ 
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ 	return
+ }
+ 
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), 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 libc_listen_trampoline()
+ 
+-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
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++	_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++	r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++	r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	return
+ }
+ 
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))
+ 	newoffset = int64(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 	return
+ }
+ 
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), 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
+ }
+ 
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ 	return
+ }
+ 
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), 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 libc_settimeofday_trampoline()
+ 
+-func Setuid(uid int) (err error) {
+-	_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Setuid(uid int) (err error) {
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), 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 libc_setuid_trampoline()
+ 
+-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
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++	_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Sync() (err error) {
+-	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ 	oldmask = int(r0)
+ 	return
+ }
+ 
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ 	ret = uintptr(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ 	return
+ }
+ 
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1598,8 +2342,23 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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 := syscall_syscall6(funcPC(libc_ptrace_trampoline), uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_ptrace_trampoline()
++
++//go:linkname libc_ptrace libc_ptrace
++//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib"
++
++// 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ 	sec = int64(r0)
+ 	usec = int32(r1)
+ 	if e1 != 0 {
+@@ -1607,3 +2366,134 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ 	}
+ 	return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstat64_trampoline()
++
++//go:linkname libc_fstat64 libc_fstat64
++//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_fstatat64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatat64_trampoline()
++
++//go:linkname libc_fstatat64 libc_fstatat64
++//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstatfs64_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatfs64_trampoline()
++
++//go:linkname libc_fstatfs64 libc_fstatfs64
++//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat64_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getfsstat64_trampoline()
++
++//go:linkname libc_getfsstat64 libc_getfsstat64
++//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_lstat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_lstat64_trampoline()
++
++//go:linkname libc_lstat64 libc_lstat64
++//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_stat64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_stat64_trampoline()
++
++//go:linkname libc_stat64 libc_stat64
++//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_statfs64_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_statfs64_trampoline()
++
++//go:linkname libc_statfs64 libc_statfs64
++//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+new file mode 100644
+index 00000000..a3fdf099
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s
+@@ -0,0 +1,284 @@
++// go run mkasm_darwin.go amd64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munmap(SB)
++TEXT ·libc_ptrace_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ptrace(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_gettimeofday(SB)
++TEXT ·libc_fstat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstat64(SB)
++TEXT ·libc_fstatat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatat64(SB)
++TEXT ·libc_fstatfs64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatfs64(SB)
++TEXT ·libc_getfsstat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat64(SB)
++TEXT ·libc_lstat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lstat64(SB)
++TEXT ·libc_stat64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_stat64(SB)
++TEXT ·libc_statfs64_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_statfs64(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+similarity index 85%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+index 7a409745..cea04e04 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
++// go run mksyscall.go -l32 -tags darwin,arm,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.1_11.go syscall_darwin_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,arm
++// +build darwin,arm,!go1.12
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	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, size int, position uint32, options 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
++	}
++	_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	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, options 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
++	}
++	_, _, e1 := Syscall(SYS_REMOVEXATTR, 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 fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	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, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 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 kill(pid int, signum int, posix int) (err error) {
+ 	_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), 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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // 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 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // 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)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+ 
+ // 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)
+@@ -1607,3 +1691,94 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ 	}
+ 	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, 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 getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), 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 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 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
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
+new file mode 100644
+index 00000000..f519ce9a
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -l32 -tags darwin,arm,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,arm,go1.13
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++	r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++	res = Errno(r0)
++	return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
+new file mode 100644
+index 00000000..488e5570
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go arm
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+index 7a409745..63103950 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
++// go run mksyscall.go -l32 -tags darwin,arm,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,arm
++// +build darwin,arm,go1.12
+ 
+ package unix
+ 
+@@ -15,7 +15,7 @@ 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ 	return
+ }
+ 
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ 	wpid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ 	return
+ }
+ 
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	} 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), 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)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	return
+ }
+ 
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++	_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+ 
+-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
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++	_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++	_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ 	r = int(r0)
+ 	w = int(r1)
+ 	if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ 	return
+ }
+ 
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options 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
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options 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
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++	val = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_sysctl_trampoline), 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
++}
++
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := syscall_syscall9(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(offset>>32), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ 	nfd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ 	return
+ }
+ 
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exit(code int) {
+-	Syscall(SYS_EXIT, uintptr(code), 0, 0)
++	syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ 	return
+ }
+ 
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+ 
+-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
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Fsync(fd int) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), 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 libc_fsync_trampoline()
+ 
+-func Fsync(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+ 
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), 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
+-}
++func libc_ftruncate_trampoline()
++
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getdtablesize() (size int) {
+-	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++	r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ 	size = int(r0)
+ 	return
+ }
+ 
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+ 
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+ 
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ 	pgid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ 	return
+ }
+ 
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpgrp() (pgrp int) {
+-	r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ 	pgrp = int(r0)
+ 	return
+ }
+ 
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpid() (pid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	return
+ }
+ 
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getppid() (ppid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ 	ppid = int(r0)
+ 	return
+ }
+ 
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ 	prio = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ 	return
+ }
+ 
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ 	sid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ 	return
+ }
+ 
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Issetugid() (tainted bool) {
+-	r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ 	tainted = bool(r0 != 0)
+ 	return
+ }
+ 
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ 	return
+ }
+ 
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), 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 libc_listen_trampoline()
+ 
+-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
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++	_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++	r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++	r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	return
+ }
+ 
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, r1, e1 := syscall_syscall6(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0)
+ 	newoffset = int64(int64(r1)<<32 | int64(r0))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 	return
+ }
+ 
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), 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
+ }
+ 
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ 	return
+ }
+ 
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), 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 libc_settimeofday_trampoline()
+ 
+-func Setuid(uid int) (err error) {
+-	_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Setuid(uid int) (err error) {
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), 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 libc_setuid_trampoline()
+ 
+-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
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++	_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Sync() (err error) {
+-	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
++	_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ 	oldmask = int(r0)
+ 	return
+ }
+ 
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall9(funcPC(libc_mmap_trampoline), 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)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ 	return
+ }
+ 
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1599,7 +2343,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ 	sec = int32(r0)
+ 	usec = int32(r1)
+ 	if e1 != 0 {
+@@ -1607,3 +2351,134 @@ func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) {
+ 	}
+ 	return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstat_trampoline()
++
++//go:linkname libc_fstat libc_fstat
++//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatat_trampoline()
++
++//go:linkname libc_fstatat libc_fstatat
++//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatfs_trampoline()
++
++//go:linkname libc_fstatfs libc_fstatfs
++//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getfsstat_trampoline()
++
++//go:linkname libc_getfsstat libc_getfsstat
++//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_lstat_trampoline()
++
++//go:linkname libc_lstat libc_lstat
++//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_stat_trampoline()
++
++//go:linkname libc_stat libc_stat
++//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_statfs_trampoline()
++
++//go:linkname libc_statfs libc_statfs
++//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+new file mode 100644
+index 00000000..b67f518f
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.s
+@@ -0,0 +1,282 @@
++// go run mkasm_darwin.go arm
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munmap(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_gettimeofday(SB)
++TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstat(SB)
++TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatat(SB)
++TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatfs(SB)
++TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lstat(SB)
++TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_stat(SB)
++TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_statfs(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+similarity index 84%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+index 07c6ebc9..8c3bb3a2 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_11.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
++// go run mksyscall.go -tags darwin,arm64,!go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.1_11.go syscall_darwin_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,arm64
++// +build darwin,arm64,!go1.12
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_GETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -388,6 +372,161 @@ func pipe() (r int, w int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	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, size int, position uint32, options 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
++	}
++	_, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	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, options 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
++	}
++	_, _, e1 := Syscall(SYS_REMOVEXATTR, 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 fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	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, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall6(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := Syscall6(SYS_FLISTXATTR, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 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 setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := Syscall6(SYS_SETATTRLIST, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 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 kill(pid int, signum int, posix int) (err error) {
+ 	_, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+@@ -408,6 +547,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++	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)
+@@ -672,26 +837,6 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // 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 {
+@@ -712,23 +857,6 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
+@@ -930,21 +1058,6 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // 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)
+@@ -1229,8 +1342,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1375,36 +1489,6 @@ func Setuid(uid int) (err error) {
+ 
+ // 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)
+@@ -1607,3 +1691,94 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ 	}
+ 	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, 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 getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(buf), uintptr(size), 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 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 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
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
+new file mode 100644
+index 00000000..d64e6c80
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.go
+@@ -0,0 +1,41 @@
++// go run mksyscall.go -tags darwin,arm64,go1.13 syscall_darwin.1_13.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build darwin,arm64,go1.13
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func closedir(dir uintptr) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_closedir_trampoline), uintptr(dir), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_closedir_trampoline()
++
++//go:linkname libc_closedir libc_closedir
++//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) {
++	r0, _, _ := syscall_syscall(funcPC(libc_readdir_r_trampoline), uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result)))
++	res = Errno(r0)
++	return
++}
++
++func libc_readdir_r_trampoline()
++
++//go:linkname libc_readdir_r libc_readdir_r
++//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
+new file mode 100644
+index 00000000..b29dabb0
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s
+@@ -0,0 +1,12 @@
++// go run mkasm_darwin.go arm64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.13
++
++#include "textflag.h"
++TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fdopendir(SB)
++TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_closedir(SB)
++TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readdir_r(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+index 07c6ebc9..a8709f72 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
++// go run mksyscall.go -tags darwin,arm64,go1.12 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,arm64
++// +build darwin,arm64,go1.12
+ 
+ package unix
+ 
+@@ -15,7 +15,7 @@ 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -23,20 +23,30 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ 	return
+ }
+ 
++func libc_getgroups_trampoline()
++
++//go:linkname libc_getgroups libc_getgroups
++//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgroups_trampoline), uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgroups_trampoline()
++
++//go:linkname libc_setgroups libc_setgroups
++//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_wait4_trampoline), uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ 	wpid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -44,10 +54,15 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err
+ 	return
+ }
+ 
++func libc_wait4_trampoline()
++
++//go:linkname libc_wait4 libc_wait4
++//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_accept_trampoline), uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -55,30 +70,45 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_accept_trampoline()
++
++//go:linkname libc_accept libc_accept
++//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_bind_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_bind_trampoline()
++
++//go:linkname libc_bind libc_bind
++//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_connect_trampoline), uintptr(s), uintptr(addr), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_connect_trampoline()
++
++//go:linkname libc_connect libc_connect
++//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_socket_trampoline), uintptr(domain), uintptr(typ), uintptr(proto))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -86,66 +116,101 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_socket_trampoline()
++
++//go:linkname libc_socket libc_socket
++//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_getsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockopt_trampoline()
++
++//go:linkname libc_getsockopt libc_getsockopt
++//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall6(funcPC(libc_setsockopt_trampoline), uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setsockopt_trampoline()
++
++//go:linkname libc_setsockopt libc_setsockopt
++//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getpeername_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getpeername_trampoline()
++
++//go:linkname libc_getpeername libc_getpeername
++//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getsockname_trampoline), uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getsockname_trampoline()
++
++//go:linkname libc_getsockname libc_getsockname
++//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_shutdown_trampoline), uintptr(s), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_shutdown_trampoline()
++
++//go:linkname libc_shutdown libc_shutdown
++//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall6(funcPC(libc_socketpair_trampoline), uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_socketpair_trampoline()
++
++//go:linkname libc_socketpair libc_socketpair
++//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -155,7 +220,7 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	} 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_recvfrom_trampoline), 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)
+@@ -163,6 +228,11 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	return
+ }
+ 
++func libc_recvfrom_trampoline()
++
++//go:linkname libc_recvfrom libc_recvfrom
++//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -172,17 +242,22 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
++	_, _, e1 := syscall_syscall6(funcPC(libc_sendto_trampoline), uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sendto_trampoline()
++
++//go:linkname libc_sendto libc_sendto
++//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_recvmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -190,10 +265,15 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_recvmsg_trampoline()
++
++//go:linkname libc_recvmsg libc_recvmsg
++//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_sendmsg_trampoline), uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -201,10 +281,15 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++func libc_sendmsg_trampoline()
++
++//go:linkname libc_sendmsg libc_sendmsg
++//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib"
++
+ // 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)))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_kevent_trampoline), uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -212,21 +297,10 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_kevent_trampoline()
+ 
+-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
+-}
++//go:linkname libc_kevent libc_kevent
++//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -236,34 +310,49 @@ func utimes(path string, timeval *[2]Timeval) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_utimes_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_utimes_trampoline()
++
++//go:linkname libc_utimes libc_utimes
++//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_futimes_trampoline), uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_futimes_trampoline()
++
++//go:linkname libc_futimes libc_futimes
++//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_poll_trampoline), uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_poll_trampoline()
++
++//go:linkname libc_poll libc_poll
++//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Madvise(b []byte, behav int) (err error) {
+@@ -273,13 +362,18 @@ func Madvise(b []byte, behav int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav))
++	_, _, e1 := syscall_syscall(funcPC(libc_madvise_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(behav))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_madvise_trampoline()
++
++//go:linkname libc_madvise libc_madvise
++//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mlock(b []byte) (err error) {
+@@ -289,23 +383,33 @@ func Mlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlock_trampoline()
++
++//go:linkname libc_mlock libc_mlock
++//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_mlockall_trampoline), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mlockall_trampoline()
++
++//go:linkname libc_mlockall libc_mlockall
++//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mprotect(b []byte, prot int) (err error) {
+@@ -315,13 +419,18 @@ func Mprotect(b []byte, prot int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++	_, _, e1 := syscall_syscall(funcPC(libc_mprotect_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mprotect_trampoline()
++
++//go:linkname libc_mprotect libc_mprotect
++//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Msync(b []byte, flags int) (err error) {
+@@ -331,13 +440,18 @@ func Msync(b []byte, flags int) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_msync_trampoline), uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_msync_trampoline()
++
++//go:linkname libc_msync libc_msync
++//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlock(b []byte) (err error) {
+@@ -347,37 +461,52 @@ func Munlock(b []byte) (err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlock_trampoline), uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlock_trampoline()
++
++//go:linkname libc_munlock libc_munlock
++//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_munlockall_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munlockall_trampoline()
++
++//go:linkname libc_munlockall libc_munlockall
++//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_getattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getattrlist_trampoline()
++
++//go:linkname libc_getattrlist libc_getattrlist
++//go:cgo_import_dynamic libc_getattrlist getattrlist "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_pipe_trampoline), 0, 0, 0)
+ 	r = int(r0)
+ 	w = int(r1)
+ 	if e1 != 0 {
+@@ -386,26 +515,282 @@ func pipe() (r int, w int, err error) {
+ 	return
+ }
+ 
++func libc_pipe_trampoline()
++
++//go:linkname libc_pipe libc_pipe
++//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (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
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_getxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getxattr_trampoline()
++
++//go:linkname libc_getxattr libc_getxattr
++//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_fgetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options))
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fgetxattr_trampoline()
++
++//go:linkname libc_fgetxattr libc_fgetxattr
++//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setxattr(path string, attr string, data *byte, size int, position uint32, options 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
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_setxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setxattr_trampoline()
++
++//go:linkname libc_setxattr libc_setxattr
++//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall6(funcPC(libc_fsetxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fsetxattr_trampoline()
++
++//go:linkname libc_fsetxattr libc_fsetxattr
++//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func removexattr(path string, attr string, options 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
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_removexattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_removexattr_trampoline()
++
++//go:linkname libc_removexattr libc_removexattr
++//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fremovexattr(fd int, attr string, options int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := syscall_syscall(funcPC(libc_fremovexattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fremovexattr_trampoline()
++
++//go:linkname libc_fremovexattr libc_fremovexattr
++//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func listxattr(path string, dest *byte, size int, options int) (sz int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := syscall_syscall6(funcPC(libc_listxattr_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_listxattr_trampoline()
++
++//go:linkname libc_listxattr libc_listxattr
++//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_flistxattr_trampoline), uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0)
++	sz = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_flistxattr_trampoline()
++
++//go:linkname libc_flistxattr libc_flistxattr
++//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_setattrlist_trampoline), uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_setattrlist_trampoline()
++
++//go:linkname libc_setattrlist libc_setattrlist
++//go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_fcntl_trampoline), uintptr(fd), uintptr(cmd), uintptr(arg))
++	val = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fcntl_trampoline()
++
++//go:linkname libc_fcntl libc_fcntl
++//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_kill_trampoline), uintptr(pid), uintptr(signum), uintptr(posix))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_kill_trampoline()
++
++//go:linkname libc_kill libc_kill
++//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	_, _, e1 := syscall_syscall(funcPC(libc_ioctl_trampoline), uintptr(fd), uintptr(req), uintptr(arg))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_ioctl_trampoline()
++
++//go:linkname libc_ioctl libc_ioctl
++//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_sysctl_trampoline), 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
++}
++
++func libc_sysctl_trampoline()
++
++//go:linkname libc_sysctl libc_sysctl
++//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) {
++	_, _, e1 := syscall_syscall6(funcPC(libc_sendfile_trampoline), uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_sendfile_trampoline()
++
++//go:linkname libc_sendfile libc_sendfile
++//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Access(path string, mode uint32) (err error) {
+@@ -414,23 +799,33 @@ func Access(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_access_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_access_trampoline()
++
++//go:linkname libc_access libc_access
++//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_adjtime_trampoline), uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_adjtime_trampoline()
++
++//go:linkname libc_adjtime libc_adjtime
++//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chdir(path string) (err error) {
+@@ -439,13 +834,18 @@ func Chdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chdir_trampoline()
++
++//go:linkname libc_chdir libc_chdir
++//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chflags(path string, flags int) (err error) {
+@@ -454,13 +854,18 @@ func Chflags(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chflags_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chflags_trampoline()
++
++//go:linkname libc_chflags libc_chflags
++//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chmod(path string, mode uint32) (err error) {
+@@ -469,13 +874,18 @@ func Chmod(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chmod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chmod_trampoline()
++
++//go:linkname libc_chmod libc_chmod
++//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chown(path string, uid int, gid int) (err error) {
+@@ -484,13 +894,18 @@ func Chown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_chown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chown_trampoline()
++
++//go:linkname libc_chown libc_chown
++//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Chroot(path string) (err error) {
+@@ -499,27 +914,52 @@ func Chroot(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_chroot_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_chroot_trampoline()
++
++//go:linkname libc_chroot libc_chroot
++//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func ClockGettime(clockid int32, time *Timespec) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_clock_gettime_trampoline), uintptr(clockid), uintptr(unsafe.Pointer(time)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_clock_gettime_trampoline()
++
++//go:linkname libc_clock_gettime libc_clock_gettime
++//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_close_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_close_trampoline()
++
++//go:linkname libc_close libc_close
++//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_dup_trampoline), uintptr(fd), 0, 0)
+ 	nfd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -527,16 +967,26 @@ func Dup(fd int) (nfd int, err error) {
+ 	return
+ }
+ 
++func libc_dup_trampoline()
++
++//go:linkname libc_dup libc_dup
++//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_dup2_trampoline), uintptr(from), uintptr(to), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_dup2_trampoline()
++
++//go:linkname libc_dup2 libc_dup2
++//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exchangedata(path1 string, path2 string, options int) (err error) {
+@@ -550,20 +1000,30 @@ func Exchangedata(path1 string, path2 string, options int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
++	_, _, e1 := syscall_syscall(funcPC(libc_exchangedata_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_exchangedata_trampoline()
++
++//go:linkname libc_exchangedata libc_exchangedata
++//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Exit(code int) {
+-	Syscall(SYS_EXIT, uintptr(code), 0, 0)
++	syscall_syscall(funcPC(libc_exit_trampoline), uintptr(code), 0, 0)
+ 	return
+ }
+ 
++func libc_exit_trampoline()
++
++//go:linkname libc_exit libc_exit
++//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -572,43 +1032,63 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_faccessat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_faccessat_trampoline()
++
++//go:linkname libc_faccessat libc_faccessat
++//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchdir_trampoline), uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchdir_trampoline()
++
++//go:linkname libc_fchdir libc_fchdir
++//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchflags_trampoline), uintptr(fd), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchflags_trampoline()
++
++//go:linkname libc_fchflags libc_fchflags
++//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_fchmod_trampoline), uintptr(fd), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmod_trampoline()
++
++//go:linkname libc_fchmod libc_fchmod
++//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -617,23 +1097,33 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchmodat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchmodat_trampoline()
++
++//go:linkname libc_fchmodat libc_fchmodat
++//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_fchown_trampoline), uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchown_trampoline()
++
++//go:linkname libc_fchown libc_fchown
++//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -642,27 +1132,37 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_fchownat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_fchownat_trampoline()
++
++//go:linkname libc_fchownat libc_fchownat
++//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_flock_trampoline), uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_flock_trampoline()
++
++//go:linkname libc_flock libc_flock
++//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_fpathconf_trampoline), uintptr(fd), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -670,99 +1170,97 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 	return
+ }
+ 
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++func libc_fpathconf_trampoline()
+ 
+-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
+-}
++//go:linkname libc_fpathconf libc_fpathconf
++//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Fsync(fd int) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fsync_trampoline), 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 libc_fsync_trampoline()
+ 
+-func Fsync(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_fsync libc_fsync
++//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_ftruncate_trampoline), 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
+-}
++func libc_ftruncate_trampoline()
++
++//go:linkname libc_ftruncate libc_ftruncate
++//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getdtablesize() (size int) {
+-	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0)
++	r0, _, _ := syscall_syscall(funcPC(libc_getdtablesize_trampoline), 0, 0, 0)
+ 	size = int(r0)
+ 	return
+ }
+ 
++func libc_getdtablesize_trampoline()
++
++//go:linkname libc_getdtablesize libc_getdtablesize
++//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getegid_trampoline), 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+ 
++func libc_getegid_trampoline()
++
++//go:linkname libc_getegid libc_getegid
++//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_geteuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_geteuid_trampoline()
++
++//go:linkname libc_geteuid libc_geteuid
++//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getgid_trampoline), 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+ 
++func libc_getgid_trampoline()
++
++//go:linkname libc_getgid libc_getgid
++//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getpgid_trampoline), uintptr(pid), 0, 0)
+ 	pgid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -770,34 +1268,54 @@ func Getpgid(pid int) (pgid int, err error) {
+ 	return
+ }
+ 
++func libc_getpgid_trampoline()
++
++//go:linkname libc_getpgid libc_getpgid
++//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpgrp() (pgrp int) {
+-	r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpgrp_trampoline), 0, 0, 0)
+ 	pgrp = int(r0)
+ 	return
+ }
+ 
++func libc_getpgrp_trampoline()
++
++//go:linkname libc_getpgrp libc_getpgrp
++//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpid() (pid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getpid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	return
+ }
+ 
++func libc_getpid_trampoline()
++
++//go:linkname libc_getpid libc_getpid
++//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getppid() (ppid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getppid_trampoline), 0, 0, 0)
+ 	ppid = int(r0)
+ 	return
+ }
+ 
++func libc_getppid_trampoline()
++
++//go:linkname libc_getppid libc_getppid
++//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_getpriority_trampoline), uintptr(which), uintptr(who), 0)
+ 	prio = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -805,30 +1323,45 @@ func Getpriority(which int, who int) (prio int, err error) {
+ 	return
+ }
+ 
++func libc_getpriority_trampoline()
++
++//go:linkname libc_getpriority libc_getpriority
++//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrlimit_trampoline()
++
++//go:linkname libc_getrlimit libc_getrlimit
++//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_getrusage_trampoline), uintptr(who), uintptr(unsafe.Pointer(rusage)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_getrusage_trampoline()
++
++//go:linkname libc_getrusage libc_getrusage
++//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_getsid_trampoline), uintptr(pid), 0, 0)
+ 	sid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -836,26 +1369,41 @@ func Getsid(pid int) (sid int, err error) {
+ 	return
+ }
+ 
++func libc_getsid_trampoline()
++
++//go:linkname libc_getsid libc_getsid
++//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_getuid_trampoline), 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++func libc_getuid_trampoline()
++
++//go:linkname libc_getuid libc_getuid
++//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Issetugid() (tainted bool) {
+-	r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++	r0, _, _ := syscall_rawSyscall(funcPC(libc_issetugid_trampoline), 0, 0, 0)
+ 	tainted = bool(r0 != 0)
+ 	return
+ }
+ 
++func libc_issetugid_trampoline()
++
++//go:linkname libc_issetugid libc_issetugid
++//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_syscall(funcPC(libc_kqueue_trampoline), 0, 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -863,6 +1411,11 @@ func Kqueue() (fd int, err error) {
+ 	return
+ }
+ 
++func libc_kqueue_trampoline()
++
++//go:linkname libc_kqueue libc_kqueue
++//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Lchown(path string, uid int, gid int) (err error) {
+@@ -871,13 +1424,18 @@ func Lchown(path string, uid int, gid int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
++	_, _, e1 := syscall_syscall(funcPC(libc_lchown_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_lchown_trampoline()
++
++//go:linkname libc_lchown libc_lchown
++//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Link(path string, link string) (err error) {
+@@ -891,13 +1449,18 @@ func Link(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_link_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_link_trampoline()
++
++//go:linkname libc_link libc_link
++//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) {
+@@ -911,37 +1474,32 @@ func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err er
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_linkat_trampoline), uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_linkat_trampoline()
++
++//go:linkname libc_linkat libc_linkat
++//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_listen_trampoline), 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 libc_listen_trampoline()
+ 
+-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
+-}
++//go:linkname libc_listen libc_listen
++//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -951,13 +1509,18 @@ func Mkdir(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdir_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdir_trampoline()
++
++//go:linkname libc_mkdir libc_mkdir
++//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+@@ -966,13 +1529,18 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
++	_, _, e1 := syscall_syscall(funcPC(libc_mkdirat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkdirat_trampoline()
++
++//go:linkname libc_mkdirat libc_mkdirat
++//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mkfifo(path string, mode uint32) (err error) {
+@@ -981,13 +1549,18 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_mkfifo_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mkfifo_trampoline()
++
++//go:linkname libc_mkfifo libc_mkfifo
++//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Mknod(path string, mode uint32, dev int) (err error) {
+@@ -996,13 +1569,18 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
++	_, _, e1 := syscall_syscall(funcPC(libc_mknod_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_mknod_trampoline()
++
++//go:linkname libc_mknod libc_mknod
++//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1011,7 +1589,7 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
++	r0, _, e1 := syscall_syscall(funcPC(libc_open_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm))
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1019,6 +1597,11 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_open_trampoline()
++
++//go:linkname libc_open libc_open
++//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+@@ -1027,7 +1610,7 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_openat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1035,6 +1618,11 @@ func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	return
+ }
+ 
++func libc_openat_trampoline()
++
++//go:linkname libc_openat libc_openat
++//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Pathconf(path string, name int) (val int, err error) {
+@@ -1043,7 +1631,7 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
++	r0, _, e1 := syscall_syscall(funcPC(libc_pathconf_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(name), 0)
+ 	val = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1051,6 +1639,11 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	return
+ }
+ 
++func libc_pathconf_trampoline()
++
++//go:linkname libc_pathconf libc_pathconf
++//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1060,7 +1653,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pread_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1068,6 +1661,11 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pread_trampoline()
++
++//go:linkname libc_pread libc_pread
++//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1077,7 +1675,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_pwrite_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1085,6 +1683,11 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	return
+ }
+ 
++func libc_pwrite_trampoline()
++
++//go:linkname libc_pwrite libc_pwrite
++//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func read(fd int, p []byte) (n int, err error) {
+@@ -1094,7 +1697,7 @@ func read(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1102,6 +1705,11 @@ func read(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_read_trampoline()
++
++//go:linkname libc_read libc_read
++//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Readlink(path string, buf []byte) (n int, err error) {
+@@ -1116,7 +1724,7 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_readlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1124,6 +1732,11 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlink_trampoline()
++
++//go:linkname libc_readlink libc_readlink
++//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib"
++
+ // 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) {
+@@ -1138,7 +1751,7 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	} else {
+ 		_p1 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
++	r0, _, e1 := syscall_syscall6(funcPC(libc_readlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1146,6 +1759,11 @@ func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_readlinkat_trampoline()
++
++//go:linkname libc_readlinkat libc_readlinkat
++//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rename(from string, to string) (err error) {
+@@ -1159,13 +1777,18 @@ func Rename(from string, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rename_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rename_trampoline()
++
++//go:linkname libc_rename libc_rename
++//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+@@ -1179,13 +1802,18 @@ func Renameat(fromfd int, from string, tofd int, to string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++	_, _, e1 := syscall_syscall6(funcPC(libc_renameat_trampoline), uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_renameat_trampoline()
++
++//go:linkname libc_renameat libc_renameat
++//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Revoke(path string) (err error) {
+@@ -1194,13 +1822,18 @@ func Revoke(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_revoke_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_revoke_trampoline()
++
++//go:linkname libc_revoke libc_revoke
++//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Rmdir(path string) (err error) {
+@@ -1209,17 +1842,22 @@ func Rmdir(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_rmdir_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_rmdir_trampoline()
++
++//go:linkname libc_rmdir libc_rmdir
++//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_lseek_trampoline), uintptr(fd), uintptr(offset), uintptr(whence))
+ 	newoffset = int64(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1227,46 +1865,72 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 	return
+ }
+ 
++func libc_lseek_trampoline()
++
++//go:linkname libc_lseek libc_lseek
++//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
++	r0, _, e1 := syscall_syscall6(funcPC(libc_select_trampoline), 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
+ }
+ 
++func libc_select_trampoline()
++
++//go:linkname libc_select libc_select
++//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setegid_trampoline), uintptr(egid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setegid_trampoline()
++
++//go:linkname libc_setegid libc_setegid
++//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_seteuid_trampoline), uintptr(euid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_seteuid_trampoline()
++
++//go:linkname libc_seteuid libc_seteuid
++//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setgid_trampoline), uintptr(gid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setgid_trampoline()
++
++//go:linkname libc_setgid libc_setgid
++//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Setlogin(name string) (err error) {
+@@ -1275,77 +1939,112 @@ func Setlogin(name string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_setlogin_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setlogin_trampoline()
++
++//go:linkname libc_setlogin libc_setlogin
++//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setpgid_trampoline), uintptr(pid), uintptr(pgid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpgid_trampoline()
++
++//go:linkname libc_setpgid libc_setpgid
++//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	_, _, e1 := syscall_syscall(funcPC(libc_setpriority_trampoline), uintptr(which), uintptr(who), uintptr(prio))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setpriority_trampoline()
++
++//go:linkname libc_setpriority libc_setpriority
++//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_setprivexec_trampoline), uintptr(flag), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setprivexec_trampoline()
++
++//go:linkname libc_setprivexec libc_setprivexec
++//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setregid_trampoline), uintptr(rgid), uintptr(egid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setregid_trampoline()
++
++//go:linkname libc_setregid libc_setregid
++//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setreuid_trampoline), uintptr(ruid), uintptr(euid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setreuid_trampoline()
++
++//go:linkname libc_setreuid libc_setreuid
++//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setrlimit_trampoline), uintptr(which), uintptr(unsafe.Pointer(lim)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_setrlimit_trampoline()
++
++//go:linkname libc_setrlimit libc_setrlimit
++//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, e1 := syscall_rawSyscall(funcPC(libc_setsid_trampoline), 0, 0, 0)
+ 	pid = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1353,55 +2052,40 @@ func Setsid() (pid int, err error) {
+ 	return
+ }
+ 
++func libc_setsid_trampoline()
++
++//go:linkname libc_setsid libc_setsid
++//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_settimeofday_trampoline), 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 libc_settimeofday_trampoline()
+ 
+-func Setuid(uid int) (err error) {
+-	_, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
++//go:linkname libc_settimeofday libc_settimeofday
++//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib"
+ 
+ // 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)
++func Setuid(uid int) (err error) {
++	_, _, e1 := syscall_rawSyscall(funcPC(libc_setuid_trampoline), 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 libc_setuid_trampoline()
+ 
+-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
+-}
++//go:linkname libc_setuid libc_setuid
++//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib"
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -1416,13 +2100,18 @@ func Symlink(path string, link string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_symlink_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlink_trampoline()
++
++//go:linkname libc_symlink libc_symlink
++//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+@@ -1436,23 +2125,33 @@ func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
++	_, _, e1 := syscall_syscall(funcPC(libc_symlinkat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_symlinkat_trampoline()
++
++//go:linkname libc_symlinkat libc_symlinkat
++//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Sync() (err error) {
+-	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_sync_trampoline), 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_sync_trampoline()
++
++//go:linkname libc_sync libc_sync
++//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Truncate(path string, length int64) (err error) {
+@@ -1461,21 +2160,31 @@ func Truncate(path string, length int64) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_truncate_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_truncate_trampoline()
++
++//go:linkname libc_truncate libc_truncate
++//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	r0, _, _ := syscall_syscall(funcPC(libc_umask_trampoline), uintptr(newmask), 0, 0)
+ 	oldmask = int(r0)
+ 	return
+ }
+ 
++func libc_umask_trampoline()
++
++//go:linkname libc_umask libc_umask
++//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Undelete(path string) (err error) {
+@@ -1484,13 +2193,18 @@ func Undelete(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_undelete_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_undelete_trampoline()
++
++//go:linkname libc_undelete libc_undelete
++//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlink(path string) (err error) {
+@@ -1499,13 +2213,18 @@ func Unlink(path string) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unlink_trampoline), uintptr(unsafe.Pointer(_p0)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlink_trampoline()
++
++//go:linkname libc_unlink libc_unlink
++//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unlinkat(dirfd int, path string, flags int) (err error) {
+@@ -1514,13 +2233,18 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
++	_, _, e1 := syscall_syscall(funcPC(libc_unlinkat_trampoline), uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unlinkat_trampoline()
++
++//go:linkname libc_unlinkat libc_unlinkat
++//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Unmount(path string, flags int) (err error) {
+@@ -1529,13 +2253,18 @@ func Unmount(path string, flags int) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	_, _, e1 := syscall_syscall(funcPC(libc_unmount_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_unmount_trampoline()
++
++//go:linkname libc_unmount libc_unmount
++//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib"
++
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func write(fd int, p []byte) (n int, err error) {
+@@ -1545,7 +2274,7 @@ func write(fd int, p []byte) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1553,10 +2282,15 @@ func write(fd int, p []byte) (n int, err error) {
+ 	return
+ }
+ 
++func libc_write_trampoline()
++
++//go:linkname libc_write libc_write
++//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall6(funcPC(libc_mmap_trampoline), uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ 	ret = uintptr(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1564,20 +2298,30 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ 	return
+ }
+ 
++func libc_mmap_trampoline()
++
++//go:linkname libc_mmap libc_mmap
++//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib"
++
+ // 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)
++	_, _, e1 := syscall_syscall(funcPC(libc_munmap_trampoline), uintptr(addr), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+ 	return
+ }
+ 
++func libc_munmap_trampoline()
++
++//go:linkname libc_munmap libc_munmap
++//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib"
++
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_read_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1588,7 +2332,7 @@ func readlen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // 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))
++	r0, _, e1 := syscall_syscall(funcPC(libc_write_trampoline), uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1599,7 +2343,7 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ // 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)
++	r0, r1, e1 := syscall_rawSyscall(funcPC(libc_gettimeofday_trampoline), uintptr(unsafe.Pointer(tp)), 0, 0)
+ 	sec = int64(r0)
+ 	usec = int32(r1)
+ 	if e1 != 0 {
+@@ -1607,3 +2351,134 @@ func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) {
+ 	}
+ 	return
+ }
++
++func libc_gettimeofday_trampoline()
++
++//go:linkname libc_gettimeofday libc_gettimeofday
++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstat(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstat_trampoline()
++
++//go:linkname libc_fstat libc_fstat
++//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib"
++
++// 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 := syscall_syscall6(funcPC(libc_fstatat_trampoline), uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatat_trampoline()
++
++//go:linkname libc_fstatat libc_fstatat
++//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fstatfs(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := syscall_syscall(funcPC(libc_fstatfs_trampoline), uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_fstatfs_trampoline()
++
++//go:linkname libc_fstatfs libc_fstatfs
++//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib"
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) {
++	r0, _, e1 := syscall_syscall(funcPC(libc_getfsstat_trampoline), uintptr(buf), uintptr(size), uintptr(flags))
++	n = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_getfsstat_trampoline()
++
++//go:linkname libc_getfsstat libc_getfsstat
++//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_lstat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_lstat_trampoline()
++
++//go:linkname libc_lstat libc_lstat
++//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_stat_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_stat_trampoline()
++
++//go:linkname libc_stat libc_stat
++//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib"
++
++// 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_syscall(funcPC(libc_statfs_trampoline), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++func libc_statfs_trampoline()
++
++//go:linkname libc_statfs libc_statfs
++//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib"
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+new file mode 100644
+index 00000000..40cce1bb
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s
+@@ -0,0 +1,282 @@
++// go run mkasm_darwin.go arm64
++// Code generated by the command above; DO NOT EDIT.
++
++// +build go1.12
++
++#include "textflag.h"
++TEXT ·libc_getgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgroups(SB)
++TEXT ·libc_setgroups_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgroups(SB)
++TEXT ·libc_wait4_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_wait4(SB)
++TEXT ·libc_accept_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_accept(SB)
++TEXT ·libc_bind_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_bind(SB)
++TEXT ·libc_connect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_connect(SB)
++TEXT ·libc_socket_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socket(SB)
++TEXT ·libc_getsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockopt(SB)
++TEXT ·libc_setsockopt_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsockopt(SB)
++TEXT ·libc_getpeername_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpeername(SB)
++TEXT ·libc_getsockname_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsockname(SB)
++TEXT ·libc_shutdown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_shutdown(SB)
++TEXT ·libc_socketpair_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_socketpair(SB)
++TEXT ·libc_recvfrom_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvfrom(SB)
++TEXT ·libc_sendto_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendto(SB)
++TEXT ·libc_recvmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_recvmsg(SB)
++TEXT ·libc_sendmsg_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendmsg(SB)
++TEXT ·libc_kevent_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kevent(SB)
++TEXT ·libc_utimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_utimes(SB)
++TEXT ·libc_futimes_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_futimes(SB)
++TEXT ·libc_poll_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_poll(SB)
++TEXT ·libc_madvise_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_madvise(SB)
++TEXT ·libc_mlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlock(SB)
++TEXT ·libc_mlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mlockall(SB)
++TEXT ·libc_mprotect_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mprotect(SB)
++TEXT ·libc_msync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_msync(SB)
++TEXT ·libc_munlock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlock(SB)
++TEXT ·libc_munlockall_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munlockall(SB)
++TEXT ·libc_getattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getattrlist(SB)
++TEXT ·libc_pipe_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pipe(SB)
++TEXT ·libc_getxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getxattr(SB)
++TEXT ·libc_fgetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fgetxattr(SB)
++TEXT ·libc_setxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setxattr(SB)
++TEXT ·libc_fsetxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsetxattr(SB)
++TEXT ·libc_removexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_removexattr(SB)
++TEXT ·libc_fremovexattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fremovexattr(SB)
++TEXT ·libc_listxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listxattr(SB)
++TEXT ·libc_flistxattr_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flistxattr(SB)
++TEXT ·libc_setattrlist_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setattrlist(SB)
++TEXT ·libc_fcntl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fcntl(SB)
++TEXT ·libc_kill_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kill(SB)
++TEXT ·libc_ioctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ioctl(SB)
++TEXT ·libc_sysctl_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sysctl(SB)
++TEXT ·libc_sendfile_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sendfile(SB)
++TEXT ·libc_access_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_access(SB)
++TEXT ·libc_adjtime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_adjtime(SB)
++TEXT ·libc_chdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chdir(SB)
++TEXT ·libc_chflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chflags(SB)
++TEXT ·libc_chmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chmod(SB)
++TEXT ·libc_chown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chown(SB)
++TEXT ·libc_chroot_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_chroot(SB)
++TEXT ·libc_clock_gettime_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_clock_gettime(SB)
++TEXT ·libc_close_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_close(SB)
++TEXT ·libc_dup_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup(SB)
++TEXT ·libc_dup2_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_dup2(SB)
++TEXT ·libc_exchangedata_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exchangedata(SB)
++TEXT ·libc_exit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_exit(SB)
++TEXT ·libc_faccessat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_faccessat(SB)
++TEXT ·libc_fchdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchdir(SB)
++TEXT ·libc_fchflags_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchflags(SB)
++TEXT ·libc_fchmod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmod(SB)
++TEXT ·libc_fchmodat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchmodat(SB)
++TEXT ·libc_fchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchown(SB)
++TEXT ·libc_fchownat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fchownat(SB)
++TEXT ·libc_flock_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_flock(SB)
++TEXT ·libc_fpathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fpathconf(SB)
++TEXT ·libc_fsync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fsync(SB)
++TEXT ·libc_ftruncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_ftruncate(SB)
++TEXT ·libc_getdtablesize_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getdtablesize(SB)
++TEXT ·libc_getegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getegid(SB)
++TEXT ·libc_geteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_geteuid(SB)
++TEXT ·libc_getgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getgid(SB)
++TEXT ·libc_getpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgid(SB)
++TEXT ·libc_getpgrp_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpgrp(SB)
++TEXT ·libc_getpid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpid(SB)
++TEXT ·libc_getppid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getppid(SB)
++TEXT ·libc_getpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getpriority(SB)
++TEXT ·libc_getrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrlimit(SB)
++TEXT ·libc_getrusage_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getrusage(SB)
++TEXT ·libc_getsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getsid(SB)
++TEXT ·libc_getuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getuid(SB)
++TEXT ·libc_issetugid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_issetugid(SB)
++TEXT ·libc_kqueue_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_kqueue(SB)
++TEXT ·libc_lchown_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lchown(SB)
++TEXT ·libc_link_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_link(SB)
++TEXT ·libc_linkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_linkat(SB)
++TEXT ·libc_listen_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_listen(SB)
++TEXT ·libc_mkdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdir(SB)
++TEXT ·libc_mkdirat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkdirat(SB)
++TEXT ·libc_mkfifo_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mkfifo(SB)
++TEXT ·libc_mknod_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mknod(SB)
++TEXT ·libc_open_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_open(SB)
++TEXT ·libc_openat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_openat(SB)
++TEXT ·libc_pathconf_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pathconf(SB)
++TEXT ·libc_pread_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pread(SB)
++TEXT ·libc_pwrite_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_pwrite(SB)
++TEXT ·libc_read_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_read(SB)
++TEXT ·libc_readlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlink(SB)
++TEXT ·libc_readlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_readlinkat(SB)
++TEXT ·libc_rename_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rename(SB)
++TEXT ·libc_renameat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_renameat(SB)
++TEXT ·libc_revoke_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_revoke(SB)
++TEXT ·libc_rmdir_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_rmdir(SB)
++TEXT ·libc_lseek_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lseek(SB)
++TEXT ·libc_select_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_select(SB)
++TEXT ·libc_setegid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setegid(SB)
++TEXT ·libc_seteuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_seteuid(SB)
++TEXT ·libc_setgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setgid(SB)
++TEXT ·libc_setlogin_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setlogin(SB)
++TEXT ·libc_setpgid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpgid(SB)
++TEXT ·libc_setpriority_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setpriority(SB)
++TEXT ·libc_setprivexec_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setprivexec(SB)
++TEXT ·libc_setregid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setregid(SB)
++TEXT ·libc_setreuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setreuid(SB)
++TEXT ·libc_setrlimit_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setrlimit(SB)
++TEXT ·libc_setsid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setsid(SB)
++TEXT ·libc_settimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_settimeofday(SB)
++TEXT ·libc_setuid_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_setuid(SB)
++TEXT ·libc_symlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlink(SB)
++TEXT ·libc_symlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_symlinkat(SB)
++TEXT ·libc_sync_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_sync(SB)
++TEXT ·libc_truncate_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_truncate(SB)
++TEXT ·libc_umask_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_umask(SB)
++TEXT ·libc_undelete_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_undelete(SB)
++TEXT ·libc_unlink_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlink(SB)
++TEXT ·libc_unlinkat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unlinkat(SB)
++TEXT ·libc_unmount_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_unmount(SB)
++TEXT ·libc_write_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_write(SB)
++TEXT ·libc_mmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_mmap(SB)
++TEXT ·libc_munmap_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_munmap(SB)
++TEXT ·libc_gettimeofday_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_gettimeofday(SB)
++TEXT ·libc_fstat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstat(SB)
++TEXT ·libc_fstatat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatat(SB)
++TEXT ·libc_fstatfs_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_fstatfs(SB)
++TEXT ·libc_getfsstat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_getfsstat(SB)
++TEXT ·libc_lstat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_lstat(SB)
++TEXT ·libc_stat_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_stat(SB)
++TEXT ·libc_statfs_trampoline(SB),NOSPLIT,$0-0
++	JMP	libc_statfs(SB)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+index 7fa205cd..fe1fdd78 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go
++// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build dragonfly,amd64
+@@ -255,9 +255,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -412,6 +412,33 @@ func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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)
+@@ -550,6 +577,21 @@ func Exit(code int) {
+ 
+ // 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 Fchdir(fd int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+@@ -580,6 +622,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -590,6 +647,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -621,6 +693,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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, stat *Statfs_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+@@ -651,6 +738,23 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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 Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+@@ -859,6 +963,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -899,6 +1023,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -929,6 +1068,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mknodat(fd 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(fd), 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 {
+@@ -955,6 +1109,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1030,6 +1200,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1071,8 +1261,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1277,6 +1468,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1340,6 +1551,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+index 1a0bb4cb..600f1d26 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
++// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build freebsd,386
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,10 +350,25 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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 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)
+ 	}
+@@ -388,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 ptrace(request int, pid int, addr uintptr, data int) (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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, 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_freebsd11_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 fstatat_freebsd12(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_FREEBSD12, 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, stat *statfs_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, 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 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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) {
++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])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (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_FREEBSD12, 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)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func mknodat(fd 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(fd), 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 mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 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 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, 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)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+index ac1e8e01..064934b0 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
++// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build freebsd,amd64
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,10 +350,25 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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 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)
+ 	}
+@@ -388,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 ptrace(request int, pid int, addr uintptr, data int) (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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, 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_freebsd11_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 fstatat_freebsd12(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_FREEBSD12, 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, stat *statfs_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, 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 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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) {
++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])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (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_FREEBSD12, 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)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func mknodat(fd 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(fd), 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 mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), 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 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, 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)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+index 2b4e6acf..31d2c461 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go
++// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build freebsd,arm
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,10 +350,41 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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 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 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)
+ 	}
+@@ -388,6 +403,16 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func ptrace(request int, pid int, addr uintptr, data int) (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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, 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_freebsd11_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 fstatat_freebsd12(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_FREEBSD12, 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, stat *statfs_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, 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 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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) {
++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])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (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_FREEBSD12, 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)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func mknodat(fd 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(fd), 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 mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), 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 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, 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)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+similarity index 90%
+copy from vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+index ac1e8e01..4adaaa56 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
++// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build freebsd,amd64
++// +build freebsd,arm64
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,10 +350,25 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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 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)
+ 	}
+@@ -388,6 +387,32 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 ptrace(request int, pid int, addr uintptr, data int) (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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -886,7 +911,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstat(fd int, stat *Stat_t) (err error) {
++func fstat(fd int, stat *stat_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -896,7 +921,47 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Fstatfs(fd int, stat *Statfs_t) (err error) {
++func fstat_freebsd12(fd int, stat *Stat_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, 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_freebsd11_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 fstatat_freebsd12(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_FREEBSD12, 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, stat *statfs_freebsd11_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -906,6 +971,16 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, 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 {
+@@ -926,7 +1001,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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) {
++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])
+@@ -943,6 +1018,23 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (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_FREEBSD12, 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)
+@@ -1164,7 +1256,7 @@ func Listen(s int, backlog int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++func lstat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1224,7 +1316,7 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mknod(path string, mode uint32, dev int) (err error) {
++func mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1239,6 +1331,36 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func mknodat(fd 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(fd), 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 mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), 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 {
+@@ -1473,8 +1595,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1629,7 +1752,7 @@ func Setuid(uid int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Stat(path string, stat *Stat_t) (err error) {
++func stat(path string, stat *stat_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1644,7 +1767,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func statfs(path string, stat *statfs_freebsd11_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+@@ -1659,6 +1782,21 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func statfs_freebsd12(path string, stat *Statfs_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, 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)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+new file mode 100644
+index 00000000..92efa1da
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go
+@@ -0,0 +1,87 @@
++// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build illumos,amd64
++
++package unix
++
++import (
++	"unsafe"
++)
++
++//go:cgo_import_dynamic libc_readv readv "libc.so"
++//go:cgo_import_dynamic libc_preadv preadv "libc.so"
++//go:cgo_import_dynamic libc_writev writev "libc.so"
++//go:cgo_import_dynamic libc_pwritev pwritev "libc.so"
++
++//go:linkname procreadv libc_readv
++//go:linkname procpreadv libc_preadv
++//go:linkname procwritev libc_writev
++//go:linkname procpwritev libc_pwritev
++
++var (
++	procreadv,
++	procpreadv,
++	procwritev,
++	procpwritev syscallFunc
++)
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func readv(fd int, iovs []Iovec) (n int, err error) {
++	var _p0 *Iovec
++	if len(iovs) > 0 {
++		_p0 = &iovs[0]
++	}
++	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
++	n = int(r0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func preadv(fd int, iovs []Iovec, off int64) (n int, err error) {
++	var _p0 *Iovec
++	if len(iovs) > 0 {
++		_p0 = &iovs[0]
++	}
++	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
++	n = int(r0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func writev(fd int, iovs []Iovec) (n int, err error) {
++	var _p0 *Iovec
++	if len(iovs) > 0 {
++		_p0 = &iovs[0]
++	}
++	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0)
++	n = int(r0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) {
++	var _p0 *Iovec
++	if len(iovs) > 0 {
++		_p0 = &iovs[0]
++	}
++	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0)
++	n = int(r0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux.go
+similarity index 79%
+copy from vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_linux.go
+index b6ff9e39..fd2dae8e 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux.go
+@@ -1,7 +1,6 @@
+-// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
+-// Code generated by the command above; see README.md. DO NOT EDIT.
++// Code generated by mkmerge.go; DO NOT EDIT.
+ 
+-// +build linux,s390x
++// +build linux
+ 
+ package unix
+ 
+@@ -10,7 +9,16 @@ import (
+ 	"unsafe"
+ )
+ 
+-var _ syscall.Errno
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
++	r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
++	fd = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+@@ -143,21 +151,6 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ 
+ // 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)
+@@ -173,16 +166,6 @@ func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error
+ 
+ // 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 {
+@@ -309,6 +292,36 @@ func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(keyType)
++	if err != nil {
++		return
++	}
++	var _p1 *byte
++	_p1, err = BytePtrFromString(restriction)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), 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 keyctlRestrictKeyring(cmd int, arg2 int) (err error) {
++	_, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0)
++	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 {
+@@ -412,6 +425,26 @@ func Adjtimex(buf *Timex) (state int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Capget(hdr *CapUserHeader, data *CapUserData) (err error) {
++	_, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), 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 Capset(hdr *CapUserHeader, data *CapUserData) (err error) {
++	_, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), 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 Chdir(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -442,6 +475,16 @@ func Chroot(path string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func ClockGetres(clockid int32, res *Timespec) (err error) {
++	_, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 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 {
+@@ -452,6 +495,16 @@ func ClockGettime(clockid int32, time *Timespec) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) {
++	_, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 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 {
+@@ -473,9 +526,13 @@ func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags in
+ 
+ // 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)
++func DeleteModule(name string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(name)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -484,8 +541,9 @@ func Dup(oldfd int) (fd int, err error) {
+ 
+ // 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))
++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)
+ 	}
+@@ -494,9 +552,8 @@ func Dup3(oldfd int, newfd int, flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -538,19 +595,14 @@ func Eventfd(initval uint, flags int) (fd int, err error) {
+ // 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)
++	SyscallNoError(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)
++func Fchdir(fd int) (err error) {
++	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -559,8 +611,8 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 
+ // 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)
++func Fchmod(fd int, mode uint32) (err error) {
++	_, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -569,8 +621,13 @@ func Fallocate(fd int, mode uint32, off int64, len int64) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -579,8 +636,8 @@ func Fchdir(fd int) (err error) {
+ 
+ // 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)
++func Fdatasync(fd int) (err error) {
++	_, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -589,13 +646,20 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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) {
++func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
++	_p0, err = BytePtrFromString(attr)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0)
++	var _p1 unsafe.Pointer
++	if len(dest) > 0 {
++		_p1 = unsafe.Pointer(&dest[0])
++	} else {
++		_p1 = unsafe.Pointer(&_zero)
++	}
++	r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0)
++	sz = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -604,9 +668,13 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ 
+ // 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)
++func FinitModule(fd int, params string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(params)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -615,8 +683,15 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ 
+ // 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)
++func Flistxattr(fd int, dest []byte) (sz int, err error) {
++	var _p0 unsafe.Pointer
++	if len(dest) > 0 {
++		_p0 = unsafe.Pointer(&dest[0])
++	} else {
++		_p0 = unsafe.Pointer(&_zero)
++	}
++	r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest)))
++	sz = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -635,6 +710,42 @@ func Flock(fd int, how int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Fremovexattr(fd int, attr string) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(attr)
++	if err != nil {
++		return
++	}
++	var _p1 unsafe.Pointer
++	if len(dest) > 0 {
++		_p1 = unsafe.Pointer(&dest[0])
++	} else {
++		_p1 = unsafe.Pointer(&_zero)
++	}
++	_, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 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 {
+@@ -674,7 +785,7 @@ func Getpgid(pid int) (pgid int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getpid() (pid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0)
+ 	pid = int(r0)
+ 	return
+ }
+@@ -682,7 +793,7 @@ func Getpid() (pid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getppid() (ppid int) {
+-	r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0)
+ 	ppid = int(r0)
+ 	return
+ }
+@@ -739,7 +850,7 @@ func Getsid(pid int) (sid int, err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Gettid() (tid int) {
+-	r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0)
+ 	tid = int(r0)
+ 	return
+ }
+@@ -773,6 +884,27 @@ func Getxattr(path string, attr string, dest []byte) (sz int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func InitModule(moduleImage []byte, params string) (err error) {
++	var _p0 unsafe.Pointer
++	if len(moduleImage) > 0 {
++		_p0 = unsafe.Pointer(&moduleImage[0])
++	} else {
++		_p0 = unsafe.Pointer(&_zero)
++	}
++	var _p1 *byte
++	_p1, err = BytePtrFromString(params)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), 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 InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(pathname)
+@@ -955,6 +1087,22 @@ func Lsetxattr(path string, attr string, data []byte, flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func MemfdCreate(name string, flags int) (fd int, err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(name)
++	if err != nil {
++		return
++	}
++	r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 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 Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -995,6 +1143,17 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) {
++	r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 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 PivotRoot(newroot string, putold string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(newroot)
+@@ -1035,6 +1194,17 @@ func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (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)), uintptr(unsafe.Pointer(sigmask)))
++	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 {
+@@ -1072,7 +1242,7 @@ func Removexattr(path string, attr string) (err error) {
+ 
+ // 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) {
++func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(oldpath)
+ 	if err != nil {
+@@ -1083,7 +1253,7 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0)
++	_, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1227,15 +1397,24 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Sync() {
+-	Syscall(SYS_SYNC, 0, 0, 0)
++func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) {
++	r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0)
++	newfd = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
+ 	return
+ }
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1244,8 +1423,15 @@ func Syncfs(fd int) (err error) {
+ 
+ // 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)
++func Sync() {
++	SyscallNoError(SYS_SYNC, 0, 0, 0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Syncfs(fd int) (err error) {
++	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1254,9 +1440,8 @@ func Sysinfo(info *Sysinfo_t) (err error) {
+ 
+ // 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)
++func Sysinfo(info *Sysinfo_t) (err error) {
++	_, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1287,7 +1472,7 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ // 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)
++	r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0)
+ 	oldmask = int(r0)
+ 	return
+ }
+@@ -1329,16 +1514,6 @@ func Unshare(flags int) (err error) {
+ 
+ // 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 {
+@@ -1388,24 +1563,15 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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) {
++func readv(fd int, iovs []Iovec) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
++	if len(iovs) > 0 {
++		_p0 = unsafe.Pointer(&iovs[0])
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
++	r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1414,14 +1580,15 @@ func Madvise(b []byte, advice int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mprotect(b []byte, prot int) (err error) {
++func writev(fd int, iovs []Iovec) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
++	if len(iovs) > 0 {
++		_p0 = unsafe.Pointer(&iovs[0])
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
++	r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1430,14 +1597,15 @@ func Mprotect(b []byte, prot int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Mlock(b []byte) (err error) {
++func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
++	if len(iovs) > 0 {
++		_p0 = unsafe.Pointer(&iovs[0])
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
++	r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1446,24 +1614,15 @@ func Mlock(b []byte) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Munlock(b []byte) (err error) {
++func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
++	if len(iovs) > 0 {
++		_p0 = unsafe.Pointer(&iovs[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)
++	r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1472,34 +1631,15 @@ func Mlockall(flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Msync(b []byte, flags int) (err error) {
++func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
++	if len(iovs) > 0 {
++		_p0 = unsafe.Pointer(&iovs[0])
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++	r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1508,14 +1648,14 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 
+ // 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) {
++func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(events) > 0 {
+-		_p0 = unsafe.Pointer(&events[0])
++	if len(iovs) > 0 {
++		_p0 = unsafe.Pointer(&iovs[0])
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
++	r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags))
+ 	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1525,141 +1665,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 
+ // 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)
++func munmap(addr uintptr, length uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1668,15 +1675,14 @@ func Pause() (err error) {
+ 
+ // 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) {
++func Madvise(b []byte, advice int) (err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(b) > 0 {
++		_p0 = unsafe.Pointer(&b[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)
++	_, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1685,58 +1691,14 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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) {
++func Mprotect(b []byte, prot int) (err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(b) > 0 {
++		_p0 = unsafe.Pointer(&b[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)
++	_, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1745,18 +1707,14 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func Mlock(b []byte) (err error) {
++	var _p0 unsafe.Pointer
++	if len(b) > 0 {
++		_p0 = unsafe.Pointer(&b[0])
++	} else {
++		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	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)
++	_, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1765,8 +1723,8 @@ func Setregid(rgid int, egid int) (err error) {
+ 
+ // 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))
++func Mlockall(flags int) (err error) {
++	_, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1775,18 +1733,14 @@ func Setresgid(rgid int, egid int, sgid int) (err error) {
+ 
+ // 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)
++func Msync(b []byte, flags int) (err error) {
++	var _p0 unsafe.Pointer
++	if len(b) > 0 {
++		_p0 = unsafe.Pointer(&b[0])
++	} else {
++		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	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)
++	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1795,19 +1749,14 @@ func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ 
+ // 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)
++func Munlock(b []byte) (err error) {
++	var _p0 unsafe.Pointer
++	if len(b) > 0 {
++		_p0 = unsafe.Pointer(&b[0])
++	} else {
++		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	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)
++	_, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1816,13 +1765,8 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
+ 
+ // 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)
++func Munlockall() (err error) {
++	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1831,13 +1775,13 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Statfs(path string, buf *Statfs_t) (err error) {
++func faccessat(dirfd int, path string, mode uint32) (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)
++	_, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1846,23 +1790,13 @@ func Statfs(path string, buf *Statfs_t) (err error) {
+ 
+ // 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) {
++func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) {
+ 	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
++	_p0, err = BytePtrFromString(pathname)
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++	_, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1871,44 +1805,9 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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)
++func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) {
++	r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags))
++	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1924,14 +1823,3 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
+ 	}
+ 	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_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+index 38c1bbdf..ba63af7b 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go
++// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,386
+@@ -14,1259 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, 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 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))
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1275,9 +24,8 @@ func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1286,16 +34,9 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1304,13 +45,8 @@ func Uname(buf *Utsname) (err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1319,8 +55,8 @@ func Unmount(target string, flags int) (err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +65,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +76,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,128 +93,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++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)
+ 	}
+@@ -1518,8 +103,8 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1528,8 +113,8 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 
+ // 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))
++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)
+ 	}
+@@ -1538,18 +123,13 @@ func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+ 
+ // 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)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	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)
++	_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1569,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1577,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1585,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1593,7 +173,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1695,6 +275,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1706,8 +306,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1716,8 +317,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1817,6 +419,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -1860,15 +472,8 @@ func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset
+ 
+ // 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)
++func Pause() (err error) {
++	_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1877,8 +482,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Pause() (err error) {
+-	_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++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)
+ 	}
+@@ -1887,8 +492,8 @@ func Pause() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1897,8 +502,13 @@ func getrlimit(resource int, rlim *rlimit32) (err error) {
+ 
+ // 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)
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1943,6 +553,21 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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 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)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+index dc8fe0a8..f64adef4 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go
++// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,amd64
+@@ -14,1446 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, 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 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)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1462,8 +24,8 @@ func Munlock(b []byte) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1472,14 +34,9 @@ func Mlockall(flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++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)
+ 	}
+@@ -1488,8 +45,8 @@ func Msync(b []byte, flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1498,8 +55,9 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1555,6 +113,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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 {
+@@ -1576,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1584,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1592,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1610,14 +183,14 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(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) {
++func inotifyInit() (fd int, err error) {
+ 	r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+@@ -1673,21 +246,6 @@ func Listen(s int, n int) (err error) {
+ 
+ // 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 {
+@@ -1732,9 +290,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1743,9 +310,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1765,8 +332,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1775,8 +343,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1856,21 +425,6 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
+ 
+ // 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)
+@@ -1911,6 +465,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -2101,6 +665,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Utime(path string, buf *Utimbuf) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -2116,8 +695,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2126,8 +710,8 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2144,3 +728,18 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ 	}
+ 	return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	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
+index 4d280427..ac19523e 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go
++// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,arm
+@@ -14,1456 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, 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 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)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1472,14 +24,8 @@ func Mlockall(flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++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)
+ 	}
+@@ -1488,8 +34,9 @@ func Msync(b []byte, flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++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)
+ 	}
+@@ -1498,8 +45,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1697,6 +244,34 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 
+ // 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 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_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -1717,8 +292,23 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), 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 Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1726,7 +316,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1734,7 +324,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1742,7 +332,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1800,6 +390,36 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ 
+ // 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 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 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)
+@@ -1822,8 +442,9 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1832,8 +453,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1918,8 +540,8 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1928,15 +550,13 @@ func Gettimeofday(tv *Timeval) (err error) {
+ 
+ // 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)
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+-	n = int(r0)
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1945,8 +565,23 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Pause() (err error) {
+-	_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
++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 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)
+ 	}
+@@ -2053,3 +688,28 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ 	}
+ 	return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) {
++	_, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32))
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	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
+index 20ad4b6c..f0d2890b 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go
++// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,arm64
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1265,120 +45,14 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+ 
+ // 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) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,125 +62,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++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)
+ 	}
+@@ -1571,7 +128,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1579,7 +136,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1587,7 +144,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1605,7 +162,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1656,9 +213,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1667,9 +233,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1689,8 +255,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1699,8 +266,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2020,8 +588,13 @@ func Gettimeofday(tv *Timeval) (err error) {
+ 
+ // 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)
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+index 9f194dc4..aecbbca7 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go
++// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,mips
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,118 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1529,7 +114,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1537,7 +122,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1545,7 +130,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1553,7 +138,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1619,6 +204,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1641,8 +246,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1651,8 +257,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1711,9 +318,9 @@ func Shutdown(fd int, how int) (err error) {
+ 
+ // 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))
++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)
+ 	}
+@@ -1747,6 +354,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -1957,6 +574,21 @@ func Iopl(level int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -1978,13 +610,13 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++func Utime(path string, buf *Utimbuf) (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)
++	_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1993,8 +625,13 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2003,13 +640,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Stat(path string, stat *Stat_t) (err error) {
++func Lstat(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)
++	_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2018,13 +655,23 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Utime(path string, buf *Utimbuf) (err error) {
++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 Fstatat(dirfd int, path string, stat *Stat_t, flags int) (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)
++	_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2033,15 +680,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++func Stat(path string, stat *Stat_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+-	n = int(r0)
++	_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2060,8 +705,10 @@ func Pause() (err error) {
+ 
+ // 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)
++func pipe() (p1 int, p2 int, err error) {
++	r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++	p1 = int(r0)
++	p2 = int(r1)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+index 4fde3ef0..424fb7fb 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go
++// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,mips64
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,135 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++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)
+ 	}
+@@ -1556,7 +124,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1564,7 +132,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1572,7 +140,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1590,7 +158,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1666,9 +234,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1677,9 +254,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1699,8 +276,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1709,8 +287,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1830,6 +409,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -2020,6 +609,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -2045,8 +649,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2065,6 +674,21 @@ func fstat(fd int, st *stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *stat_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+index f6463423..28c7239c 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go
++// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,mips64le
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,135 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++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)
+ 	}
+@@ -1556,7 +124,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1564,7 +132,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1572,7 +140,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1590,7 +158,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1666,9 +234,18 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1677,9 +254,9 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1699,8 +276,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1709,8 +287,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1830,6 +409,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -2020,6 +609,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -2045,8 +649,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2065,6 +674,21 @@ func fstat(fd int, st *stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 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 lstat(path string, st *stat_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+index 964591e5..84596b30 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go
++// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,mipsle
+@@ -14,1228 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1244,8 +24,8 @@ func Syncfs(fd int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1265,62 +45,8 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,118 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1529,7 +114,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1537,7 +122,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1545,7 +130,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1553,7 +138,7 @@ func Getgid() (gid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1619,6 +204,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1641,8 +246,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1651,8 +257,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1711,9 +318,9 @@ func Shutdown(fd int, how int) (err error) {
+ 
+ // 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))
++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)
+ 	}
+@@ -1747,6 +354,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -1957,6 +574,21 @@ func Iopl(level int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -1978,13 +610,13 @@ func Time(t *Time_t) (tt Time_t, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Lstat(path string, stat *Stat_t) (err error) {
++func Utime(path string, buf *Utimbuf) (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)
++	_, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1993,8 +625,13 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2003,13 +640,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Stat(path string, stat *Stat_t) (err error) {
++func Lstat(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)
++	_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2018,13 +655,23 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Utime(path string, buf *Utimbuf) (err error) {
++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 Fstatat(dirfd int, path string, stat *Stat_t, flags int) (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)
++	_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2033,15 +680,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++func Stat(path string, stat *Stat_t) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+-	n = int(r0)
++	_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2060,8 +705,10 @@ func Pause() (err error) {
+ 
+ // 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)
++func pipe() (p1 int, p2 int, err error) {
++	r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
++	p1 = int(r0)
++	p2 = int(r1)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+index 204ab1ae..de022639 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go
++// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,ppc64
+@@ -14,1270 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, 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 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)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1286,16 +24,8 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1304,13 +34,9 @@ func Uname(buf *Utsname) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1319,8 +45,8 @@ func Unmount(target string, flags int) (err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,108 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++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)
+ 	}
+@@ -1498,15 +93,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1515,8 +103,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1525,18 +113,13 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 
+ // 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)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	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)
++	_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1566,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1574,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1582,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1600,7 +183,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1722,6 +305,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1734,7 +337,7 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ // 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)
++	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)
+@@ -1755,8 +358,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1765,8 +369,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1876,8 +481,13 @@ func Statfs(path string, buf *Statfs_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1886,13 +496,8 @@ func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2091,6 +696,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -2127,8 +747,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2137,8 +762,8 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2155,3 +780,28 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ 	}
+ 	return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func syncFileRange2(fd int, flags int, off int64, n int64) (err error) {
++	_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	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
+index a8a2b0b0..888f21d3 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go
++// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,ppc64le
+@@ -14,1270 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, 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 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)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1286,16 +24,8 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1304,13 +34,9 @@ func Uname(buf *Utsname) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1319,8 +45,8 @@ func Unmount(target string, flags int) (err error) {
+ 
+ // 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)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1329,8 +55,9 @@ func Unshare(flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1339,46 +66,14 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func write(fd int, p []byte) (n int, err error) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1388,108 +83,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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 Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
+-	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)
++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)
+ 	}
+@@ -1498,15 +93,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1515,8 +103,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1525,18 +113,13 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 
+ // 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)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	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)
++	_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1566,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1574,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1582,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1600,7 +183,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1722,6 +305,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1734,7 +337,7 @@ func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ // 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)
++	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)
+@@ -1755,8 +358,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1765,8 +369,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1876,8 +481,13 @@ func Statfs(path string, buf *Statfs_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1886,13 +496,8 @@ func SyncFileRange(fd int, off int64, n int64, flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2091,6 +696,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -2127,8 +747,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -2137,8 +762,8 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -2155,3 +780,28 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ 	}
+ 	return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func syncFileRange2(fd int, flags int, off int64, n int64) (err error) {
++	_, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+new file mode 100644
+index 00000000..b7613344
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
+@@ -0,0 +1,582 @@
++// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build linux,riscv64
++
++package unix
++
++import (
++	"syscall"
++	"unsafe"
++)
++
++var _ syscall.Errno
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 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 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 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 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 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, _ := RawSyscallNoError(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, _ := RawSyscallNoError(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, _ := RawSyscallNoError(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, _ := RawSyscallNoError(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 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) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
++	if e1 != 0 {
++		err = errnoErr(e1)
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
++	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 kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	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
+index b6ff9e39..9bc353f0 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
++// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,s390x
+@@ -14,1446 +14,8 @@ var _ syscall.Errno
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func fchmodat(dirfd int, path string, mode uint32) (err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(path)
+-	if err != nil {
+-		return
+-	}
+-	_, _, e1 := Syscall(SYS_FCHMODAT, 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 ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// 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 KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) {
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 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 KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret 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_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 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 keyctlJoin(cmd int, arg2 string) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg2)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 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 keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(arg3)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(arg4)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 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 keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p0 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0)
+-	if e1 != 0 {
+-		err = errnoErr(e1)
+-	}
+-	return
+-}
+-
+-// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+-
+-func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret 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_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 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 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 AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 unsafe.Pointer
+-	if len(payload) > 0 {
+-		_p2 = unsafe.Pointer(&payload[0])
+-	} else {
+-		_p2 = unsafe.Pointer(&_zero)
+-	}
+-	r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0)
+-	id = int(r0)
+-	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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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 Eventfd(initval uint, flags int) (fd int, err error) {
+-	r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 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 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 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 Lgetxattr(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_LGETXATTR, 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 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 Llistxattr(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_LLISTXATTR, 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 Lremovexattr(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_LREMOVEXATTR, 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 Lsetxattr(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_LSETXATTR, 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 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 RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) {
+-	var _p0 *byte
+-	_p0, err = BytePtrFromString(keyType)
+-	if err != nil {
+-		return
+-	}
+-	var _p1 *byte
+-	_p1, err = BytePtrFromString(description)
+-	if err != nil {
+-		return
+-	}
+-	var _p2 *byte
+-	_p2, err = BytePtrFromString(callback)
+-	if err != nil {
+-		return
+-	}
+-	r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0)
+-	id = int(r0)
+-	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 Syncfs(fd int) (err error) {
+-	_, _, e1 := Syscall(SYS_SYNCFS, 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 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)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1462,8 +24,8 @@ func Munlock(b []byte) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1472,14 +34,9 @@ func Mlockall(flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Msync(b []byte, flags int) (err error) {
+-	var _p0 unsafe.Pointer
+-	if len(b) > 0 {
+-		_p0 = unsafe.Pointer(&b[0])
+-	} else {
+-		_p0 = unsafe.Pointer(&_zero)
+-	}
+-	_, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags))
++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)
+ 	}
+@@ -1488,8 +45,8 @@ func Msync(b []byte, flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1498,8 +55,9 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1555,6 +113,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), 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 {
+@@ -1576,7 +149,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1584,7 +157,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1592,7 +165,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1610,7 +183,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1702,6 +275,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1735,8 +328,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1745,8 +339,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1871,6 +466,16 @@ func Truncate(path string, length int64) (err error) {
+ 
+ // 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 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)
+@@ -1892,6 +497,21 @@ func setgroups(n int, list *_Gid_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -1917,8 +537,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1935,3 +560,18 @@ func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ 	}
+ 	return
+ }
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(cmdline)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
++	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
+index 2dd98434..854e816d 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go
++// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build linux,sparc64
+@@ -14,944 +14,8 @@ 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 CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) {
+-	r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, 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 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)
++func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
++	_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -960,15 +24,8 @@ func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -988,120 +45,14 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) {
+ 
+ // 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) {
++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+-	if len(p) > 0 {
+-		_p0 = unsafe.Pointer(&p[0])
++	if len(events) > 0 {
++		_p0 = unsafe.Pointer(&events[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))
++	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)
+@@ -1111,82 +62,8 @@ func writelen(fd int, p *byte, np int) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1195,8 +72,8 @@ func Mlockall(flags int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Munlockall() (err error) {
+-	_, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
++func Dup2(oldfd int, newfd int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1205,15 +82,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1222,8 +92,8 @@ func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1232,18 +102,13 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 
+ // 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)
++func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
+ 	}
+-	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)
++	_, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1273,7 +138,7 @@ func Ftruncate(fd int, length int64) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getegid() (egid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+@@ -1281,7 +146,7 @@ func Getegid() (egid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Geteuid() (euid int) {
+-	r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+@@ -1289,7 +154,7 @@ func Geteuid() (euid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getgid() (gid int) {
+-	r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+@@ -1307,7 +172,7 @@ func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Getuid() (uid int) {
+-	r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
++	r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+@@ -1409,6 +274,26 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 
+ // 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 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)
+@@ -1442,8 +327,9 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
+ 
+ // 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)
++func setfsgid(gid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1452,8 +338,9 @@ func Setfsgid(gid int) (err error) {
+ 
+ // 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)
++func setfsuid(uid int) (prev int, err error) {
++	r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
++	prev = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1778,6 +665,21 @@ func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int6
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func futimesat(dirfd int, path string, times *[2]Timeval) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), 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 Gettimeofday(tv *Timeval) (err error) {
+ 	_, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ 	if e1 != 0 {
+@@ -1803,8 +705,13 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1813,8 +720,8 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // 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)
++func pipe(p *[2]_C_int) (err error) {
++	_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+index db99fd0c..3bbd9e39 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go
++// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build netbsd,386
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -378,7 +362,7 @@ func pipe() (fd1 int, fd2 int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+ 		_p0 = unsafe.Pointer(&buf[0])
+@@ -395,6 +379,49 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -526,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -533,6 +570,245 @@ func Exit(code int) {
+ 
+ // 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 {
+@@ -563,6 +839,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -573,6 +864,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -604,6 +910,31 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++	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 {
+@@ -807,6 +1138,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -847,6 +1198,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -862,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -877,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -903,6 +1299,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -992,6 +1404,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // 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 Rename(from string, to string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(from)
+@@ -1012,6 +1446,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1053,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1189,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++	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)
+@@ -1209,6 +1679,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1257,6 +1747,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+index 7b6c2c87..d8cf5012 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
++// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build netbsd,amd64
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -378,7 +362,7 @@ func pipe() (fd1 int, fd2 int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+ 		_p0 = unsafe.Pointer(&buf[0])
+@@ -395,6 +379,49 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -526,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -533,6 +570,245 @@ func Exit(code int) {
+ 
+ // 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), 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 {
+@@ -563,6 +839,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -573,6 +864,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -604,6 +910,31 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++	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 {
+@@ -807,6 +1138,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -847,6 +1198,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -862,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -877,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -903,6 +1299,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -992,6 +1404,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // 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 Rename(from string, to string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(from)
+@@ -1012,6 +1446,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1053,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1189,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++	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)
+@@ -1209,6 +1679,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1257,6 +1747,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+index 0f4cc3b5..1153fe69 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go
++// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build netbsd,arm
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -378,7 +362,7 @@ func pipe() (fd1 int, fd2 int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+ 		_p0 = unsafe.Pointer(&buf[0])
+@@ -395,6 +379,49 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -526,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -533,6 +570,245 @@ func Exit(code int) {
+ 
+ // 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 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 Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 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 {
+@@ -563,6 +839,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -573,6 +864,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -604,6 +910,31 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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 Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++	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 {
+@@ -807,6 +1138,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -847,6 +1198,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -862,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -877,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -903,6 +1299,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -992,6 +1404,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // 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 Rename(from string, to string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(from)
+@@ -1012,6 +1446,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1053,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1189,6 +1644,21 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
++	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)
+@@ -1209,6 +1679,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1257,6 +1747,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+similarity index 92%
+copy from vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+index ac1e8e01..24b4ebb4 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go
++// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build freebsd,amd64
++// +build netbsd,arm64
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,10 +350,10 @@ func Munlockall() (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func pipe() (r int, w int, err error) {
++func pipe() (fd1 int, fd2 int, err error) {
+ 	r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0)
+-	r = int(r0)
+-	w = int(r1)
++	fd1 = int(r0)
++	fd2 = int(r1)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -378,8 +362,15 @@ func pipe() (r int, w int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func ioctl(fd int, req uint, arg uintptr) (err error) {
+-	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++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)
+ 	}
+@@ -388,13 +379,15 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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
++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)
+ 	}
+-	_, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0)
++	r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0)
++	n = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -403,8 +396,8 @@ func Access(path string, mode uint32) (err error) {
+ 
+ // 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)
++func ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -413,8 +406,14 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func CapEnter() (err error) {
+-	_, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0)
++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)
+ 	}
+@@ -423,8 +422,13 @@ func CapEnter() (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func capRightsGet(version int, fd int, rightsp *CapRights) (err error) {
+-	_, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp)))
++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)
+ 	}
+@@ -433,8 +437,8 @@ func capRightsGet(version int, fd int, rightsp *CapRights) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func capRightsLimit(fd int, rightsp *CapRights) (err error) {
+-	_, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0)
++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)
+ 	}
+@@ -549,6 +553,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -770,8 +784,13 @@ func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (
+ 
+ // 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)
++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)
+ 	}
+@@ -780,13 +799,8 @@ func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+ 
+ // 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)
++func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
++	_, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -896,8 +910,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -906,8 +925,8 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ 
+ // 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)
++func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -916,8 +935,8 @@ func Fsync(fd int) (err error) {
+ 
+ // 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)
++func Fsync(fd int) (err error) {
++	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -926,15 +945,8 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
++func Ftruncate(fd int, length int64) (err error) {
++	_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -943,14 +955,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 
+ // 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)
+@@ -1224,6 +1228,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1239,6 +1258,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -1265,13 +1299,13 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) {
++func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+ 	if err != nil {
+ 		return
+ 	}
+-	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
++	r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0)
+ 	fd = int(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1304,7 +1338,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++	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)
+@@ -1321,7 +1355,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
++	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)
+@@ -1463,7 +1497,7 @@ func Rmdir(path string) (err error) {
+ // 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))
++	r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
+ 	newoffset = int64(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+@@ -1473,8 +1507,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1513,21 +1548,6 @@ func Setgid(gid int) (err error) {
+ 
+ // 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 {
+@@ -1568,26 +1588,6 @@ func Setreuid(ruid int, euid int) (err error) {
+ 
+ // 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 {
+@@ -1644,13 +1644,13 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func Statfs(path string, stat *Statfs_t) (err error) {
++func Statvfs1(path string, buf *Statvfs_t, flags int) (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)
++	_, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1715,7 +1715,7 @@ func Truncate(path string, length int64) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0)
++	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1732,21 +1732,6 @@ func Umask(newmask int) (oldmask int) {
+ 
+ // 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)
+@@ -1810,7 +1795,7 @@ func write(fd int, p []byte) (n int, err error) {
+ // 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))
++	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)
+@@ -1852,17 +1837,6 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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
+-}
+-
+-// 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)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+index 7baea87c..b44b31ae 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go
++// go run mksyscall.go -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build openbsd,386
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -376,7 +360,7 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+ 		_p0 = unsafe.Pointer(&buf[0])
+@@ -393,6 +377,60 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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 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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -524,6 +562,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -531,6 +579,21 @@ func Exit(code int) {
+ 
+ // 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 Fchdir(fd int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+@@ -561,6 +624,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -571,6 +649,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -602,6 +695,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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, stat *Statfs_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+@@ -712,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Getrtable() (rtable int, err error) {
++	r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++	rtable = 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 {
+@@ -815,6 +934,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -855,6 +994,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -870,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -885,6 +1054,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -911,6 +1095,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1000,6 +1200,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // 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 Rename(from string, to string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(from)
+@@ -1020,6 +1242,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1061,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1186,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Setrtable(rtable int) (err error) {
++	_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 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)
+@@ -1267,6 +1520,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1315,6 +1588,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+index 0d69ce6b..67f93ee7 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go
++// go run mksyscall.go -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build openbsd,amd64
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -376,7 +360,7 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+ 		_p0 = unsafe.Pointer(&buf[0])
+@@ -393,6 +377,60 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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 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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -524,6 +562,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -531,6 +579,21 @@ func Exit(code int) {
+ 
+ // 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 Fchdir(fd int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+@@ -561,6 +624,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -571,6 +649,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -602,6 +695,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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, stat *Statfs_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+@@ -712,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Getrtable() (rtable int, err error) {
++	r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++	rtable = 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 {
+@@ -815,6 +934,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -855,6 +994,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -870,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -885,6 +1054,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -911,6 +1095,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1000,6 +1200,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // 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 Rename(from string, to string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(from)
+@@ -1020,6 +1242,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1061,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1186,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Setrtable(rtable int) (err error) {
++	_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 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)
+@@ -1267,6 +1520,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1315,6 +1588,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+index 41572c26..d7c878b1 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksyscall.pl -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go
++// go run mksyscall.go -l32 -openbsd -arm -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build openbsd,arm
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -376,7 +360,7 @@ func pipe(p *[2]_C_int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+-func getdents(fd int, buf []byte) (n int, err error) {
++func Getdents(fd int, buf []byte) (n int, err error) {
+ 	var _p0 unsafe.Pointer
+ 	if len(buf) > 0 {
+ 		_p0 = unsafe.Pointer(&buf[0])
+@@ -393,6 +377,60 @@ func getdents(fd int, buf []byte) (n int, err error) {
+ 
+ // 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 ioctl(fd int, req uint, arg uintptr) (err error) {
++	_, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg))
++	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 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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -524,6 +562,16 @@ func Dup2(from int, to int) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
++	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
+@@ -531,6 +579,21 @@ func Exit(code int) {
+ 
+ // 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 Fchdir(fd int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+@@ -561,6 +624,21 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 
+ // 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 Fchown(fd int, uid int, gid int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ 	if e1 != 0 {
+@@ -571,6 +649,21 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 
+ // 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 Flock(fd int, how int) (err error) {
+ 	_, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0)
+ 	if e1 != 0 {
+@@ -602,6 +695,21 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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, stat *Statfs_t) (err error) {
+ 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+@@ -712,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Getrtable() (rtable int, err error) {
++	r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++	rtable = 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 {
+@@ -815,6 +934,26 @@ func Link(path string, link string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Linkat(pathfd int, path string, linkfd int, link string, flags int) (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 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), 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 Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0)
+ 	if e1 != 0 {
+@@ -855,6 +994,21 @@ func Mkdir(path string, mode uint32) (err error) {
+ 
+ // 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 Mkfifo(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -870,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -885,6 +1054,21 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 {
+@@ -911,6 +1095,22 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Openat(dirfd int, path string, mode int, perm 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(mode), uintptr(perm), 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 Pathconf(path string, name int) (val int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1000,6 +1200,28 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 
+ // 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 Rename(from string, to string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(from)
+@@ -1020,6 +1242,26 @@ func Rename(from string, to string) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Renameat(fromfd int, from string, tofd int, 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 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), 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 Revoke(path string) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1061,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1186,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Setrtable(rtable int) (err error) {
++	_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 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)
+@@ -1267,6 +1520,26 @@ func Symlink(path string, link string) (err error) {
+ 
+ // 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 Sync() (err error) {
+ 	_, _, e1 := Syscall(SYS_SYNC, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1315,6 +1588,21 @@ func Unlink(path string) (err error) {
+ 
+ // 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 Unmount(path string, flags int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+similarity index 87%
+copy from vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
+copy to vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+index 10491e9e..8facd695 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go
++// go run mksyscall.go -openbsd -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build darwin,386
++// +build openbsd,arm64
+ 
+ package unix
+ 
+@@ -214,22 +214,6 @@ func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, ne
+ 
+ // 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)
+@@ -255,9 +239,9 @@ func futimes(fd int, timeval *[2]Timeval) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -366,8 +350,8 @@ func Munlockall() (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -376,10 +360,15 @@ func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -388,8 +377,15 @@ func pipe() (r int, w int, err error) {
+ 
+ // 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))
++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)
+ 	}
+@@ -408,6 +404,33 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 
+ // 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 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 Access(path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -539,18 +562,8 @@ func Dup2(from int, to int) (err error) {
+ 
+ // 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))
++func Dup3(from int, to int, flags int) (err error) {
++	_, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -673,7 +686,7 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ // 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)
++	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -682,8 +695,13 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -692,8 +710,8 @@ func Fstatfs(fd int, stat *Statfs_t) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -702,8 +720,8 @@ func Fsync(fd int) (err error) {
+ 
+ // 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))
++func Fsync(fd int) (err error) {
++	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -712,15 +730,8 @@ func Ftruncate(fd int, length int64) (err error) {
+ 
+ // 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)
++func Ftruncate(fd int, length int64) (err error) {
++	_, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -729,14 +740,6 @@ func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 
+ // 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)
+@@ -817,6 +820,17 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Getrtable() (rtable int, err error) {
++	r0, _, e1 := RawSyscall(SYS_GETRTABLE, 0, 0, 0)
++	rtable = 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 {
+@@ -838,6 +852,16 @@ func Getsid(pid int) (sid int, err error) {
+ 
+ // 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)
+@@ -847,13 +871,23 @@ func Getuid() (uid int) {
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
+ func Issetugid() (tainted bool) {
+-	r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0)
++	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)
+@@ -936,7 +970,7 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -990,6 +1024,21 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
++	var _p0 *byte
++	_p0, err = BytePtrFromString(path)
++	if err != nil {
++		return
++	}
++	_, _, e1 := Syscall(SYS_MKFIFOAT, 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 Mknod(path string, mode uint32, dev int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1005,6 +1054,31 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 
+ // 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 Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1060,7 +1134,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++	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)
+@@ -1077,7 +1151,7 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	} else {
+ 		_p0 = unsafe.Pointer(&_zero)
+ 	}
+-	r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0)
++	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)
+@@ -1219,8 +1293,8 @@ func Rmdir(path string) (err error) {
+ // 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))
++	r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0)
++	newoffset = int64(r0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1229,8 +1303,9 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1240,7 +1315,7 @@ func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) {
+ // 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)
++	_, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1304,8 +1379,8 @@ func Setpriority(which int, who int, prio int) (err error) {
+ 
+ // 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)
++func Setregid(rgid int, egid int) (err error) {
++	_, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1314,8 +1389,8 @@ func Setprivexec(flag int) (err error) {
+ 
+ // 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)
++func Setreuid(ruid int, euid int) (err error) {
++	_, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1324,8 +1399,18 @@ func Setregid(rgid int, egid int) (err error) {
+ 
+ // 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)
++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)
+ 	}
+@@ -1344,6 +1429,16 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ 
+ // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+ 
++func Setrtable(rtable int) (err error) {
++	_, _, e1 := RawSyscall(SYS_SETRTABLE, uintptr(rtable), 0, 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)
+@@ -1381,7 +1476,7 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1396,7 +1491,7 @@ func Statfs(path string, stat *Statfs_t) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
++	_, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1461,7 +1556,7 @@ func Truncate(path string, length int64) (err error) {
+ 	if err != nil {
+ 		return
+ 	}
+-	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32))
++	_, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length))
+ 	if e1 != 0 {
+ 		err = errnoErr(e1)
+ 	}
+@@ -1478,21 +1573,6 @@ func Umask(newmask int) (oldmask int) {
+ 
+ // 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)
+@@ -1556,7 +1636,7 @@ func write(fd int, p []byte) (n int, err error) {
+ // 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)
++	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)
+@@ -1598,10 +1678,13 @@ func writelen(fd int, buf *byte, nbuf int) (n int, err error) {
+ 
+ // 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)
++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)
+ 	}
+diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+index 4287133d..a96165d4 100644
+--- a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
+@@ -1,4 +1,4 @@
+-// mksyscall_solaris.pl -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
++// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build solaris,amd64
+@@ -25,7 +25,11 @@ import (
+ //go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so"
+ //go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so"
+ //go:cgo_import_dynamic libc_acct acct "libc.so"
++//go:cgo_import_dynamic libc___makedev __makedev "libc.so"
++//go:cgo_import_dynamic libc___major __major "libc.so"
++//go:cgo_import_dynamic libc___minor __minor "libc.so"
+ //go:cgo_import_dynamic libc_ioctl ioctl "libc.so"
++//go:cgo_import_dynamic libc_poll poll "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"
+@@ -37,6 +41,7 @@ import (
+ //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_faccessat faccessat "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"
+@@ -46,6 +51,7 @@ import (
+ //go:cgo_import_dynamic libc_flock flock "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_fstatat fstatat "libc.so"
+ //go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so"
+ //go:cgo_import_dynamic libc_getdents getdents "libc.so"
+ //go:cgo_import_dynamic libc_getgid getgid "libc.so"
+@@ -75,6 +81,7 @@ import (
+ //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_msync msync "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"
+@@ -90,6 +97,7 @@ import (
+ //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_select select "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"
+@@ -121,6 +129,7 @@ import (
+ //go:cgo_import_dynamic libc___xnet_connect __xnet_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_sendfile sendfile "libsendfile.so"
+ //go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so"
+ //go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so"
+ //go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so"
+@@ -129,7 +138,6 @@ import (
+ //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
+@@ -146,7 +154,11 @@ import (
+ //go:linkname proc__xnet_recvmsg libc___xnet_recvmsg
+ //go:linkname proc__xnet_sendmsg libc___xnet_sendmsg
+ //go:linkname procacct libc_acct
++//go:linkname proc__makedev libc___makedev
++//go:linkname proc__major libc___major
++//go:linkname proc__minor libc___minor
+ //go:linkname procioctl libc_ioctl
++//go:linkname procpoll libc_poll
+ //go:linkname procAccess libc_access
+ //go:linkname procAdjtime libc_adjtime
+ //go:linkname procChdir libc_chdir
+@@ -158,6 +170,7 @@ import (
+ //go:linkname procDup libc_dup
+ //go:linkname procDup2 libc_dup2
+ //go:linkname procExit libc_exit
++//go:linkname procFaccessat libc_faccessat
+ //go:linkname procFchdir libc_fchdir
+ //go:linkname procFchmod libc_fchmod
+ //go:linkname procFchmodat libc_fchmodat
+@@ -167,6 +180,7 @@ import (
+ //go:linkname procFlock libc_flock
+ //go:linkname procFpathconf libc_fpathconf
+ //go:linkname procFstat libc_fstat
++//go:linkname procFstatat libc_fstatat
+ //go:linkname procFstatvfs libc_fstatvfs
+ //go:linkname procGetdents libc_getdents
+ //go:linkname procGetgid libc_getgid
+@@ -196,6 +210,7 @@ import (
+ //go:linkname procMlock libc_mlock
+ //go:linkname procMlockall libc_mlockall
+ //go:linkname procMprotect libc_mprotect
++//go:linkname procMsync libc_msync
+ //go:linkname procMunlock libc_munlock
+ //go:linkname procMunlockall libc_munlockall
+ //go:linkname procNanosleep libc_nanosleep
+@@ -211,6 +226,7 @@ import (
+ //go:linkname procRenameat libc_renameat
+ //go:linkname procRmdir libc_rmdir
+ //go:linkname proclseek libc_lseek
++//go:linkname procSelect libc_select
+ //go:linkname procSetegid libc_setegid
+ //go:linkname procSeteuid libc_seteuid
+ //go:linkname procSetgid libc_setgid
+@@ -242,6 +258,7 @@ import (
+ //go:linkname proc__xnet_connect libc___xnet_connect
+ //go:linkname procmmap libc_mmap
+ //go:linkname procmunmap libc_munmap
++//go:linkname procsendfile libc_sendfile
+ //go:linkname proc__xnet_sendto libc___xnet_sendto
+ //go:linkname proc__xnet_socket libc___xnet_socket
+ //go:linkname proc__xnet_socketpair libc___xnet_socketpair
+@@ -250,7 +267,6 @@ import (
+ //go:linkname procgetpeername libc_getpeername
+ //go:linkname procsetsockopt libc_setsockopt
+ //go:linkname procrecvfrom libc_recvfrom
+-//go:linkname procsysconf libc_sysconf
+ 
+ var (
+ 	procpipe,
+@@ -268,7 +284,11 @@ var (
+ 	proc__xnet_recvmsg,
+ 	proc__xnet_sendmsg,
+ 	procacct,
++	proc__makedev,
++	proc__major,
++	proc__minor,
+ 	procioctl,
++	procpoll,
+ 	procAccess,
+ 	procAdjtime,
+ 	procChdir,
+@@ -280,6 +300,7 @@ var (
+ 	procDup,
+ 	procDup2,
+ 	procExit,
++	procFaccessat,
+ 	procFchdir,
+ 	procFchmod,
+ 	procFchmodat,
+@@ -289,6 +310,7 @@ var (
+ 	procFlock,
+ 	procFpathconf,
+ 	procFstat,
++	procFstatat,
+ 	procFstatvfs,
+ 	procGetdents,
+ 	procGetgid,
+@@ -318,6 +340,7 @@ var (
+ 	procMlock,
+ 	procMlockall,
+ 	procMprotect,
++	procMsync,
+ 	procMunlock,
+ 	procMunlockall,
+ 	procNanosleep,
+@@ -333,6 +356,7 @@ var (
+ 	procRenameat,
+ 	procRmdir,
+ 	proclseek,
++	procSelect,
+ 	procSetegid,
+ 	procSeteuid,
+ 	procSetgid,
+@@ -364,6 +388,7 @@ var (
+ 	proc__xnet_connect,
+ 	procmmap,
+ 	procmunmap,
++	procsendfile,
+ 	proc__xnet_sendto,
+ 	proc__xnet_socket,
+ 	proc__xnet_socketpair,
+@@ -371,10 +396,11 @@ var (
+ 	proc__xnet_getsockopt,
+ 	procgetpeername,
+ 	procsetsockopt,
+-	procrecvfrom,
+-	procsysconf syscallFunc
++	procrecvfrom syscallFunc
+ )
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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)
+@@ -384,6 +410,8 @@ func pipe(p *[2]_C_int) (n int, err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -392,6 +420,8 @@ func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getcwd(buf []byte) (n int, err error) {
+ 	var _p0 *byte
+ 	if len(buf) > 0 {
+@@ -405,6 +435,8 @@ func Getcwd(buf []byte) (n int, err error) {
+ 	return
+ }
+ 
++// 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+ 	n = int(r0)
+@@ -414,6 +446,8 @@ func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -422,6 +456,8 @@ func setgroups(ngid int, gid *_Gid_t) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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)
+@@ -431,6 +467,8 @@ func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32,
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func gethostname(buf []byte) (n int, err error) {
+ 	var _p0 *byte
+ 	if len(buf) > 0 {
+@@ -444,6 +482,8 @@ func gethostname(buf []byte) (n int, err error) {
+ 	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)
+@@ -457,6 +497,8 @@ func utimes(path string, times *[2]Timeval) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -470,6 +512,8 @@ func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0)
+ 	val = int(r0)
+@@ -479,6 +523,8 @@ func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -487,6 +533,8 @@ func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ 	fd = int(r0)
+@@ -496,6 +544,8 @@ func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+ 	n = int(r0)
+@@ -505,6 +555,8 @@ func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+ 	n = int(r0)
+@@ -514,6 +566,8 @@ func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -522,6 +576,32 @@ func acct(path *byte) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func __makedev(version int, major uint, minor uint) (val uint64) {
++	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0)
++	val = uint64(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func __major(version int, dev uint64) (val uint) {
++	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)
++	val = uint(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func __minor(version int, dev uint64) (val uint) {
++	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0)
++	val = uint(r0)
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -530,6 +610,19 @@ func ioctl(fd int, req uint, arg uintptr) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0)
++	n = int(r0)
++	if e1 != 0 {
++		err = 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)
+@@ -543,6 +636,8 @@ func Access(path string, mode uint32) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -551,6 +646,8 @@ func Adjtime(delta *Timeval, olddelta *Timeval) (err error) {
+ 	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)
+@@ -564,6 +661,8 @@ func Chdir(path string) (err error) {
+ 	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)
+@@ -577,6 +676,8 @@ func Chmod(path string, mode uint32) (err error) {
+ 	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)
+@@ -590,6 +691,8 @@ func Chown(path string, uid int, gid int) (err error) {
+ 	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)
+@@ -603,6 +706,8 @@ func Chroot(path string) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Close(fd int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -611,6 +716,8 @@ func Close(fd int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Creat(path string, mode uint32) (fd int, err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -625,6 +732,8 @@ func Creat(path string, mode uint32) (fd int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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)
+@@ -634,6 +743,8 @@ func Dup(fd int) (nfd int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -642,11 +753,30 @@ func Dup2(oldfd int, newfd int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Exit(code int) {
+ 	sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 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 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fchdir(fd int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -655,6 +785,8 @@ func Fchdir(fd int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -663,6 +795,8 @@ func Fchmod(fd int, mode uint32) (err error) {
+ 	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)
+@@ -676,6 +810,8 @@ func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -684,6 +820,8 @@ func Fchown(fd int, uid int, gid int) (err error) {
+ 	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)
+@@ -697,6 +835,8 @@ func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fdatasync(fd int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -705,6 +845,8 @@ func Fdatasync(fd int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Flock(fd int, how int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -713,6 +855,8 @@ func Flock(fd int, how int) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0)
+ 	val = int(r0)
+@@ -722,6 +866,8 @@ func Fpathconf(fd int, name int) (val int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -730,6 +876,23 @@ func Fstat(fd int, stat *Stat_t) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -738,6 +901,8 @@ func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 	var _p0 *byte
+ 	if len(buf) > 0 {
+@@ -751,18 +916,24 @@ func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getgid() (gid int) {
+ 	r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0)
+ 	gid = int(r0)
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getpid() (pid int) {
+ 	r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0)
+ 	pid = 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0)
+ 	pgid = int(r0)
+@@ -772,6 +943,8 @@ func Getpgid(pid int) (pgid int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getpgrp() (pgid int, err error) {
+ 	r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0)
+ 	pgid = int(r0)
+@@ -781,24 +954,32 @@ func Getpgrp() (pgid int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Geteuid() (euid int) {
+ 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0)
+ 	euid = int(r0)
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getegid() (egid int) {
+ 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0)
+ 	egid = int(r0)
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getppid() (ppid int) {
+ 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 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) (n int, err error) {
+ 	r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0)
+ 	n = int(r0)
+@@ -808,6 +989,8 @@ func Getpriority(which int, who int) (n int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -816,6 +999,8 @@ func Getrlimit(which int, lim *Rlimit) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -824,6 +1009,8 @@ func Getrusage(who int, rusage *Rusage) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -832,12 +1019,16 @@ func Gettimeofday(tv *Timeval) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Getuid() (uid int) {
+ 	r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0)
+ 	uid = int(r0)
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -846,6 +1037,8 @@ func Kill(pid int, signum syscall.Signal) (err error) {
+ 	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)
+@@ -859,6 +1052,8 @@ func Lchown(path string, uid int, gid int) (err error) {
+ 	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)
+@@ -877,6 +1072,8 @@ func Link(path string, link string) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Listen(s int, backlog int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -885,6 +1082,8 @@ func Listen(s int, backlog int) (err error) {
+ 	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)
+@@ -898,6 +1097,8 @@ func Lstat(path string, stat *Stat_t) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Madvise(b []byte, advice int) (err error) {
+ 	var _p0 *byte
+ 	if len(b) > 0 {
+@@ -910,6 +1111,8 @@ func Madvise(b []byte, advice int) (err error) {
+ 	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)
+@@ -923,6 +1126,8 @@ func Mkdir(path string, mode uint32) (err error) {
+ 	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)
+@@ -936,6 +1141,8 @@ func Mkdirat(dirfd int, path string, mode uint32) (err error) {
+ 	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)
+@@ -949,6 +1156,8 @@ func Mkfifo(path string, mode uint32) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -962,6 +1171,8 @@ func Mkfifoat(dirfd int, path string, mode uint32) (err error) {
+ 	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)
+@@ -975,6 +1186,8 @@ func Mknod(path string, mode uint32, dev int) (err error) {
+ 	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)
+@@ -988,6 +1201,8 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mlock(b []byte) (err error) {
+ 	var _p0 *byte
+ 	if len(b) > 0 {
+@@ -1000,6 +1215,8 @@ func Mlock(b []byte) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mlockall(flags int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1008,6 +1225,8 @@ func Mlockall(flags int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Mprotect(b []byte, prot int) (err error) {
+ 	var _p0 *byte
+ 	if len(b) > 0 {
+@@ -1020,6 +1239,22 @@ func Mprotect(b []byte, prot int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
++func Msync(b []byte, flags int) (err error) {
++	var _p0 *byte
++	if len(b) > 0 {
++		_p0 = &b[0]
++	}
++	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0)
++	if e1 != 0 {
++		err = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Munlock(b []byte) (err error) {
+ 	var _p0 *byte
+ 	if len(b) > 0 {
+@@ -1032,6 +1267,8 @@ func Munlock(b []byte) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Munlockall() (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1040,6 +1277,8 @@ func Munlockall() (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1048,6 +1287,8 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) {
+ 	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)
+@@ -1062,6 +1303,8 @@ func Open(path string, mode int, perm uint32) (fd int, err error) {
+ 	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)
+@@ -1076,6 +1319,8 @@ func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
+ 	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)
+@@ -1090,6 +1335,8 @@ func Pathconf(path string, name int) (val int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Pause() (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1098,6 +1345,8 @@ func Pause() (err error) {
+ 	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 *byte
+ 	if len(p) > 0 {
+@@ -1111,6 +1360,8 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ 	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 *byte
+ 	if len(p) > 0 {
+@@ -1124,6 +1375,8 @@ func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ 	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 *byte
+ 	if len(p) > 0 {
+@@ -1137,6 +1390,8 @@ func read(fd int, p []byte) (n int, err error) {
+ 	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)
+@@ -1155,6 +1410,8 @@ func Readlink(path string, buf []byte) (n int, err error) {
+ 	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)
+@@ -1173,6 +1430,8 @@ func Rename(from string, to string) (err error) {
+ 	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)
+@@ -1191,6 +1450,8 @@ func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err e
+ 	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)
+@@ -1204,6 +1465,8 @@ func Rmdir(path string) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0)
+ 	newoffset = int64(r0)
+@@ -1213,6 +1476,19 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, 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 = e1
++	}
++	return
++}
++
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setegid(egid int) (err error) {
+ 	_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1221,6 +1497,8 @@ func Setegid(egid int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Seteuid(euid int) (err error) {
+ 	_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1229,6 +1507,8 @@ func Seteuid(euid int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setgid(gid int) (err error) {
+ 	_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1237,6 +1517,8 @@ func Setgid(gid int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sethostname(p []byte) (err error) {
+ 	var _p0 *byte
+ 	if len(p) > 0 {
+@@ -1249,6 +1531,8 @@ func Sethostname(p []byte) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1257,6 +1541,8 @@ func Setpgid(pid int, pgid int) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1265,6 +1551,8 @@ func Setpriority(which int, who int, prio int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1273,6 +1561,8 @@ func Setregid(rgid int, egid int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1281,6 +1571,8 @@ func Setreuid(ruid int, euid int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1289,6 +1581,8 @@ func Setrlimit(which int, lim *Rlimit) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setsid() (pid int, err error) {
+ 	r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0)
+ 	pid = int(r0)
+@@ -1298,6 +1592,8 @@ func Setsid() (pid int, err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Setuid(uid int) (err error) {
+ 	_, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1306,6 +1602,8 @@ func Setuid(uid int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1314,6 +1612,8 @@ func Shutdown(s int, how int) (err error) {
+ 	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)
+@@ -1327,6 +1627,8 @@ func Stat(path string, stat *Stat_t) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Statvfs(path string, vfsstat *Statvfs_t) (err error) {
+ 	var _p0 *byte
+ 	_p0, err = BytePtrFromString(path)
+@@ -1340,6 +1642,8 @@ func Statvfs(path string, vfsstat *Statvfs_t) (err error) {
+ 	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)
+@@ -1358,6 +1662,8 @@ func Symlink(path string, link string) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Sync() (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1366,6 +1672,8 @@ func Sync() (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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)
+@@ -1375,6 +1683,8 @@ func Times(tms *Tms) (ticks uintptr, err error) {
+ 	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)
+@@ -1388,6 +1698,8 @@ func Truncate(path string, length int64) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Fsync(fd int) (err error) {
+ 	_, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1396,6 +1708,8 @@ func Fsync(fd int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1404,12 +1718,16 @@ func Ftruncate(fd int, length int64) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ func Umask(mask int) (oldmask int) {
+ 	r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 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 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1418,6 +1736,8 @@ func Uname(buf *Utsname) (err error) {
+ 	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)
+@@ -1431,6 +1751,8 @@ func Unmount(target string, flags int) (err error) {
+ 	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)
+@@ -1444,6 +1766,8 @@ func Unlink(path string) (err error) {
+ 	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)
+@@ -1457,6 +1781,8 @@ func Unlinkat(dirfd int, path string, flags int) (err error) {
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1465,6 +1791,8 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) {
+ 	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)
+@@ -1478,6 +1806,8 @@ func Utime(path string, buf *Utimbuf) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1486,6 +1816,8 @@ func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1494,6 +1826,8 @@ func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos))
+ 	ret = uintptr(r0)
+@@ -1503,6 +1837,8 @@ func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (
+ 	return
+ }
+ 
++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
++
+ 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 {
+@@ -1511,6 +1847,19 @@ func munmap(addr uintptr, length uintptr) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
++	written = int(r0)
++	if e1 != 0 {
++		err = 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 *byte
+ 	if len(buf) > 0 {
+@@ -1523,6 +1872,8 @@ func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
+ 	fd = int(r0)
+@@ -1532,6 +1883,8 @@ func socket(domain int, typ int, proto int) (fd int, err error) {
+ 	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 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0)
+ 	if e1 != 0 {
+@@ -1540,6 +1893,8 @@ func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) {
+ 	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 *byte
+ 	if len(p) > 0 {
+@@ -1553,6 +1908,8 @@ func write(fd int, p []byte) (n int, err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ 	if e1 != 0 {
+@@ -1561,6 +1918,8 @@ func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen
+ 	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 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ 	if e1 != 0 {
+@@ -1569,6 +1928,8 @@ func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ 	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 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0)
+ 	if e1 != 0 {
+@@ -1577,6 +1938,8 @@ func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr)
+ 	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 *byte
+ 	if len(p) > 0 {
+@@ -1589,12 +1952,3 @@ func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Sockl
+ 	}
+ 	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_386.go
+similarity index 99%
+copy from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+copy to vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+index 83bb935b..37dcc74c 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go
+@@ -1,5 +1,7 @@
+ // mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// Code generated by the command above; DO NOT EDIT.
++
++// +build 386,openbsd
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+similarity index 91%
+copy from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+copy to vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+index 83bb935b..fe6caa6e 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go
+@@ -1,5 +1,7 @@
+-// mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysctl_openbsd.go
++// Code generated by the command above; DO NOT EDIT.
++
++// +build amd64,openbsd
+ 
+ package unix
+ 
+@@ -14,6 +16,7 @@ var sysctlMib = []mibentry{
+ 	{"ddb.max_line", []_C_int{9, 3}},
+ 	{"ddb.max_width", []_C_int{9, 2}},
+ 	{"ddb.panic", []_C_int{9, 5}},
++	{"ddb.profile", []_C_int{9, 9}},
+ 	{"ddb.radix", []_C_int{9, 1}},
+ 	{"ddb.tab_stop_width", []_C_int{9, 4}},
+ 	{"ddb.trigger", []_C_int{9, 8}},
+@@ -29,6 +32,7 @@ var sysctlMib = []mibentry{
+ 	{"hw.ncpu", []_C_int{6, 3}},
+ 	{"hw.ncpufound", []_C_int{6, 21}},
+ 	{"hw.pagesize", []_C_int{6, 7}},
++	{"hw.perfpolicy", []_C_int{6, 23}},
+ 	{"hw.physmem", []_C_int{6, 19}},
+ 	{"hw.product", []_C_int{6, 15}},
+ 	{"hw.serialno", []_C_int{6, 17}},
+@@ -37,7 +41,7 @@ var sysctlMib = []mibentry{
+ 	{"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.allowkmem", []_C_int{1, 52}},
+ 	{"kern.argmax", []_C_int{1, 8}},
+ 	{"kern.boottime", []_C_int{1, 21}},
+ 	{"kern.bufcachepercent", []_C_int{1, 72}},
+@@ -46,12 +50,13 @@ var sysctlMib = []mibentry{
+ 	{"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.dnsjackport", []_C_int{1, 13}},
+ 	{"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.global_ptrace", []_C_int{1, 81}},
+ 	{"kern.hostid", []_C_int{1, 11}},
+ 	{"kern.hostname", []_C_int{1, 10}},
+ 	{"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}},
+@@ -84,7 +89,6 @@ var sysctlMib = []mibentry{
+ 	{"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}},
+@@ -102,21 +106,16 @@ var sysctlMib = []mibentry{
+ 	{"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}},
++	{"kern.wxabort", []_C_int{1, 74}},
+ 	{"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}},
+@@ -144,7 +143,9 @@ var sysctlMib = []mibentry{
+ 	{"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.arpdown", []_C_int{4, 2, 0, 40}},
+ 	{"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}},
++	{"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}},
+ 	{"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}},
+@@ -153,8 +154,10 @@ var sysctlMib = []mibentry{
+ 	{"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.mrtmfc", []_C_int{4, 2, 0, 37}},
+ 	{"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}},
+ 	{"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}},
++	{"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}},
+ 	{"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}},
+@@ -173,7 +176,6 @@ var sysctlMib = []mibentry{
+ 	{"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}},
+@@ -187,6 +189,7 @@ var sysctlMib = []mibentry{
+ 	{"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.rootonly", []_C_int{4, 2, 6, 24}},
+ 	{"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}},
+@@ -194,9 +197,12 @@ var sysctlMib = []mibentry{
+ 	{"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.tcp.synhashsize", []_C_int{4, 2, 6, 25}},
++	{"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}},
+ 	{"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.rootonly", []_C_int{4, 2, 17, 6}},
+ 	{"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}},
+@@ -209,13 +215,8 @@ var sysctlMib = []mibentry{
+ 	{"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}},
+@@ -228,20 +229,19 @@ var sysctlMib = []mibentry{
+ 	{"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.mrtmfc", []_C_int{4, 24, 17, 53}},
++	{"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}},
+ 	{"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.soiikey", []_C_int{4, 24, 17, 54}},
+ 	{"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}},
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+similarity index 99%
+copy from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+copy to vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+index 83bb935b..6eb8c0b0 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go
+@@ -1,5 +1,7 @@
+-// mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysctl_openbsd.go
++// Code generated by the command above; DO NOT EDIT.
++
++// +build arm,openbsd
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+similarity index 91%
+rename from vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
+rename to vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+index 83bb935b..ba4304fd 100644
+--- a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go
+@@ -1,5 +1,7 @@
+-// mksysctl_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysctl_openbsd.go
++// Code generated by the command above; DO NOT EDIT.
++
++// +build arm64,openbsd
+ 
+ package unix
+ 
+@@ -14,6 +16,7 @@ var sysctlMib = []mibentry{
+ 	{"ddb.max_line", []_C_int{9, 3}},
+ 	{"ddb.max_width", []_C_int{9, 2}},
+ 	{"ddb.panic", []_C_int{9, 5}},
++	{"ddb.profile", []_C_int{9, 9}},
+ 	{"ddb.radix", []_C_int{9, 1}},
+ 	{"ddb.tab_stop_width", []_C_int{9, 4}},
+ 	{"ddb.trigger", []_C_int{9, 8}},
+@@ -28,17 +31,21 @@ var sysctlMib = []mibentry{
+ 	{"hw.model", []_C_int{6, 2}},
+ 	{"hw.ncpu", []_C_int{6, 3}},
+ 	{"hw.ncpufound", []_C_int{6, 21}},
++	{"hw.ncpuonline", []_C_int{6, 25}},
+ 	{"hw.pagesize", []_C_int{6, 7}},
++	{"hw.perfpolicy", []_C_int{6, 23}},
+ 	{"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.smt", []_C_int{6, 24}},
+ 	{"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.allowkmem", []_C_int{1, 52}},
+ 	{"kern.argmax", []_C_int{1, 8}},
++	{"kern.audio", []_C_int{1, 84}},
+ 	{"kern.boottime", []_C_int{1, 21}},
+ 	{"kern.bufcachepercent", []_C_int{1, 72}},
+ 	{"kern.ccpu", []_C_int{1, 45}},
+@@ -46,12 +53,13 @@ var sysctlMib = []mibentry{
+ 	{"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.cpustats", []_C_int{1, 85}},
+ 	{"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.global_ptrace", []_C_int{1, 81}},
+ 	{"kern.hostid", []_C_int{1, 11}},
+ 	{"kern.hostname", []_C_int{1, 10}},
+ 	{"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}},
+@@ -84,7 +92,6 @@ var sysctlMib = []mibentry{
+ 	{"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}},
+@@ -102,21 +109,17 @@ var sysctlMib = []mibentry{
+ 	{"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}},
++	{"kern.witnesswatch", []_C_int{1, 53}},
++	{"kern.wxabort", []_C_int{1, 74}},
+ 	{"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}},
+@@ -144,7 +147,9 @@ var sysctlMib = []mibentry{
+ 	{"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.arpdown", []_C_int{4, 2, 0, 40}},
+ 	{"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}},
++	{"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}},
+ 	{"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}},
+@@ -153,8 +158,10 @@ var sysctlMib = []mibentry{
+ 	{"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.mrtmfc", []_C_int{4, 2, 0, 37}},
+ 	{"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}},
+ 	{"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}},
++	{"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}},
+ 	{"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}},
+@@ -173,7 +180,6 @@ var sysctlMib = []mibentry{
+ 	{"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}},
+@@ -187,6 +193,7 @@ var sysctlMib = []mibentry{
+ 	{"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.rootonly", []_C_int{4, 2, 6, 24}},
+ 	{"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}},
+@@ -194,9 +201,12 @@ var sysctlMib = []mibentry{
+ 	{"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.tcp.synhashsize", []_C_int{4, 2, 6, 25}},
++	{"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}},
+ 	{"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.rootonly", []_C_int{4, 2, 17, 6}},
+ 	{"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}},
+@@ -209,13 +219,8 @@ var sysctlMib = []mibentry{
+ 	{"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}},
+@@ -228,20 +233,19 @@ var sysctlMib = []mibentry{
+ 	{"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.mrtmfc", []_C_int{4, 24, 17, 53}},
++	{"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}},
+ 	{"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.soiikey", []_C_int{4, 24, 17, 54}},
+ 	{"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}},
+@@ -256,6 +260,7 @@ var sysctlMib = []mibentry{
+ 	{"net.pipex.enable", []_C_int{4, 35, 1}},
+ 	{"vm.anonmin", []_C_int{2, 7}},
+ 	{"vm.loadavg", []_C_int{2, 2}},
++	{"vm.malloc_conf", []_C_int{2, 12}},
+ 	{"vm.maxslp", []_C_int{2, 10}},
+ 	{"vm.nkmempages", []_C_int{2, 6}},
+ 	{"vm.psstrings", []_C_int{2, 3}},
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
+index 2786773b..f3361453 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
+@@ -1,5 +1,5 @@
+-// 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
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/usr/include/sys/syscall.h
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,darwin
+ 
+@@ -121,13 +121,15 @@ const (
+ 	SYS_CSOPS                          = 169
+ 	SYS_CSOPS_AUDITTOKEN               = 170
+ 	SYS_WAITID                         = 173
++	SYS_KDEBUG_TYPEFILTER              = 177
++	SYS_KDEBUG_TRACE_STRING            = 178
+ 	SYS_KDEBUG_TRACE64                 = 179
+ 	SYS_KDEBUG_TRACE                   = 180
+ 	SYS_SETGID                         = 181
+ 	SYS_SETEGID                        = 182
+ 	SYS_SETEUID                        = 183
+ 	SYS_SIGRETURN                      = 184
+-	SYS_CHUD                           = 185
++	SYS_THREAD_SELFCOUNTS              = 186
+ 	SYS_FDATASYNC                      = 187
+ 	SYS_STAT                           = 188
+ 	SYS_FSTAT                          = 189
+@@ -278,7 +280,6 @@ const (
+ 	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
+@@ -287,6 +288,8 @@ const (
+ 	SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371
+ 	SYS_THREAD_SELFID                  = 372
+ 	SYS_LEDGER                         = 373
++	SYS_KEVENT_QOS                     = 374
++	SYS_KEVENT_ID                      = 375
+ 	SYS___MAC_EXECVE                   = 380
+ 	SYS___MAC_SYSCALL                  = 381
+ 	SYS___MAC_GET_FILE                 = 382
+@@ -298,11 +301,8 @@ const (
+ 	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_PSELECT                        = 394
++	SYS_PSELECT_NOCANCEL               = 395
+ 	SYS_READ_NOCANCEL                  = 396
+ 	SYS_WRITE_NOCANCEL                 = 397
+ 	SYS_OPEN_NOCANCEL                  = 398
+@@ -351,6 +351,7 @@ const (
+ 	SYS_GUARDED_CLOSE_NP               = 442
+ 	SYS_GUARDED_KQUEUE_NP              = 443
+ 	SYS_CHANGE_FDGUARD_NP              = 444
++	SYS_USRCTL                         = 445
+ 	SYS_PROC_RLIMIT_CONTROL            = 446
+ 	SYS_CONNECTX                       = 447
+ 	SYS_DISCONNECTX                    = 448
+@@ -367,6 +368,7 @@ const (
+ 	SYS_COALITION_INFO                 = 459
+ 	SYS_NECP_MATCH_POLICY              = 460
+ 	SYS_GETATTRLISTBULK                = 461
++	SYS_CLONEFILEAT                    = 462
+ 	SYS_OPENAT                         = 463
+ 	SYS_OPENAT_NOCANCEL                = 464
+ 	SYS_RENAMEAT                       = 465
+@@ -392,7 +394,43 @@ const (
+ 	SYS_GUARDED_WRITE_NP               = 485
+ 	SYS_GUARDED_PWRITE_NP              = 486
+ 	SYS_GUARDED_WRITEV_NP              = 487
+-	SYS_RENAME_EXT                     = 488
++	SYS_RENAMEATX_NP                   = 488
+ 	SYS_MREMAP_ENCRYPTED               = 489
+-	SYS_MAXSYSCALL                     = 490
++	SYS_NETAGENT_TRIGGER               = 490
++	SYS_STACK_SNAPSHOT_WITH_CONFIG     = 491
++	SYS_MICROSTACKSHOT                 = 492
++	SYS_GRAB_PGO_DATA                  = 493
++	SYS_PERSONA                        = 494
++	SYS_WORK_INTERVAL_CTL              = 499
++	SYS_GETENTROPY                     = 500
++	SYS_NECP_OPEN                      = 501
++	SYS_NECP_CLIENT_ACTION             = 502
++	SYS___NEXUS_OPEN                   = 503
++	SYS___NEXUS_REGISTER               = 504
++	SYS___NEXUS_DEREGISTER             = 505
++	SYS___NEXUS_CREATE                 = 506
++	SYS___NEXUS_DESTROY                = 507
++	SYS___NEXUS_GET_OPT                = 508
++	SYS___NEXUS_SET_OPT                = 509
++	SYS___CHANNEL_OPEN                 = 510
++	SYS___CHANNEL_GET_INFO             = 511
++	SYS___CHANNEL_SYNC                 = 512
++	SYS___CHANNEL_GET_OPT              = 513
++	SYS___CHANNEL_SET_OPT              = 514
++	SYS_ULOCK_WAIT                     = 515
++	SYS_ULOCK_WAKE                     = 516
++	SYS_FCLONEFILEAT                   = 517
++	SYS_FS_SNAPSHOT                    = 518
++	SYS_TERMINATE_WITH_PAYLOAD         = 520
++	SYS_ABORT_WITH_PAYLOAD             = 521
++	SYS_NECP_SESSION_OPEN              = 522
++	SYS_NECP_SESSION_ACTION            = 523
++	SYS_SETATTRLISTAT                  = 524
++	SYS_NET_QOS_GUIDELINE              = 525
++	SYS_FMOUNT                         = 526
++	SYS_NTP_ADJTIME                    = 527
++	SYS_NTP_GETTIME                    = 528
++	SYS_OS_FAULT_WITH_PAYLOAD          = 529
++	SYS_MAXSYSCALL                     = 530
++	SYS_INVALID                        = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+index 09de240c..654dd3da 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
+@@ -1,5 +1,5 @@
+-// 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
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,darwin
+ 
+@@ -121,13 +121,15 @@ const (
+ 	SYS_CSOPS                          = 169
+ 	SYS_CSOPS_AUDITTOKEN               = 170
+ 	SYS_WAITID                         = 173
++	SYS_KDEBUG_TYPEFILTER              = 177
++	SYS_KDEBUG_TRACE_STRING            = 178
+ 	SYS_KDEBUG_TRACE64                 = 179
+ 	SYS_KDEBUG_TRACE                   = 180
+ 	SYS_SETGID                         = 181
+ 	SYS_SETEGID                        = 182
+ 	SYS_SETEUID                        = 183
+ 	SYS_SIGRETURN                      = 184
+-	SYS_CHUD                           = 185
++	SYS_THREAD_SELFCOUNTS              = 186
+ 	SYS_FDATASYNC                      = 187
+ 	SYS_STAT                           = 188
+ 	SYS_FSTAT                          = 189
+@@ -278,7 +280,6 @@ const (
+ 	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
+@@ -287,6 +288,8 @@ const (
+ 	SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL  = 371
+ 	SYS_THREAD_SELFID                  = 372
+ 	SYS_LEDGER                         = 373
++	SYS_KEVENT_QOS                     = 374
++	SYS_KEVENT_ID                      = 375
+ 	SYS___MAC_EXECVE                   = 380
+ 	SYS___MAC_SYSCALL                  = 381
+ 	SYS___MAC_GET_FILE                 = 382
+@@ -298,11 +301,8 @@ const (
+ 	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_PSELECT                        = 394
++	SYS_PSELECT_NOCANCEL               = 395
+ 	SYS_READ_NOCANCEL                  = 396
+ 	SYS_WRITE_NOCANCEL                 = 397
+ 	SYS_OPEN_NOCANCEL                  = 398
+@@ -351,6 +351,7 @@ const (
+ 	SYS_GUARDED_CLOSE_NP               = 442
+ 	SYS_GUARDED_KQUEUE_NP              = 443
+ 	SYS_CHANGE_FDGUARD_NP              = 444
++	SYS_USRCTL                         = 445
+ 	SYS_PROC_RLIMIT_CONTROL            = 446
+ 	SYS_CONNECTX                       = 447
+ 	SYS_DISCONNECTX                    = 448
+@@ -367,6 +368,7 @@ const (
+ 	SYS_COALITION_INFO                 = 459
+ 	SYS_NECP_MATCH_POLICY              = 460
+ 	SYS_GETATTRLISTBULK                = 461
++	SYS_CLONEFILEAT                    = 462
+ 	SYS_OPENAT                         = 463
+ 	SYS_OPENAT_NOCANCEL                = 464
+ 	SYS_RENAMEAT                       = 465
+@@ -392,7 +394,45 @@ const (
+ 	SYS_GUARDED_WRITE_NP               = 485
+ 	SYS_GUARDED_PWRITE_NP              = 486
+ 	SYS_GUARDED_WRITEV_NP              = 487
+-	SYS_RENAME_EXT                     = 488
++	SYS_RENAMEATX_NP                   = 488
+ 	SYS_MREMAP_ENCRYPTED               = 489
+-	SYS_MAXSYSCALL                     = 490
++	SYS_NETAGENT_TRIGGER               = 490
++	SYS_STACK_SNAPSHOT_WITH_CONFIG     = 491
++	SYS_MICROSTACKSHOT                 = 492
++	SYS_GRAB_PGO_DATA                  = 493
++	SYS_PERSONA                        = 494
++	SYS_WORK_INTERVAL_CTL              = 499
++	SYS_GETENTROPY                     = 500
++	SYS_NECP_OPEN                      = 501
++	SYS_NECP_CLIENT_ACTION             = 502
++	SYS___NEXUS_OPEN                   = 503
++	SYS___NEXUS_REGISTER               = 504
++	SYS___NEXUS_DEREGISTER             = 505
++	SYS___NEXUS_CREATE                 = 506
++	SYS___NEXUS_DESTROY                = 507
++	SYS___NEXUS_GET_OPT                = 508
++	SYS___NEXUS_SET_OPT                = 509
++	SYS___CHANNEL_OPEN                 = 510
++	SYS___CHANNEL_GET_INFO             = 511
++	SYS___CHANNEL_SYNC                 = 512
++	SYS___CHANNEL_GET_OPT              = 513
++	SYS___CHANNEL_SET_OPT              = 514
++	SYS_ULOCK_WAIT                     = 515
++	SYS_ULOCK_WAKE                     = 516
++	SYS_FCLONEFILEAT                   = 517
++	SYS_FS_SNAPSHOT                    = 518
++	SYS_TERMINATE_WITH_PAYLOAD         = 520
++	SYS_ABORT_WITH_PAYLOAD             = 521
++	SYS_NECP_SESSION_OPEN              = 522
++	SYS_NECP_SESSION_ACTION            = 523
++	SYS_SETATTRLISTAT                  = 524
++	SYS_NET_QOS_GUIDELINE              = 525
++	SYS_FMOUNT                         = 526
++	SYS_NTP_ADJTIME                    = 527
++	SYS_NTP_GETTIME                    = 528
++	SYS_OS_FAULT_WITH_PAYLOAD          = 529
++	SYS_KQUEUE_WORKLOOP_CTL            = 530
++	SYS___MACH_BRIDGE_REMOTE_TIME      = 531
++	SYS_MAXSYSCALL                     = 532
++	SYS_INVALID                        = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
+index 41cb6ed3..103a72ed 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
+@@ -1,4 +1,4 @@
+-// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,darwin
+@@ -129,6 +129,7 @@ const (
+ 	SYS_SETEGID                        = 182
+ 	SYS_SETEUID                        = 183
+ 	SYS_SIGRETURN                      = 184
++	SYS_THREAD_SELFCOUNTS              = 186
+ 	SYS_FDATASYNC                      = 187
+ 	SYS_STAT                           = 188
+ 	SYS_FSTAT                          = 189
+@@ -288,6 +289,7 @@ const (
+ 	SYS_THREAD_SELFID                  = 372
+ 	SYS_LEDGER                         = 373
+ 	SYS_KEVENT_QOS                     = 374
++	SYS_KEVENT_ID                      = 375
+ 	SYS___MAC_EXECVE                   = 380
+ 	SYS___MAC_SYSCALL                  = 381
+ 	SYS___MAC_GET_FILE                 = 382
+@@ -421,6 +423,14 @@ const (
+ 	SYS_FS_SNAPSHOT                    = 518
+ 	SYS_TERMINATE_WITH_PAYLOAD         = 520
+ 	SYS_ABORT_WITH_PAYLOAD             = 521
+-	SYS_MAXSYSCALL                     = 522
++	SYS_NECP_SESSION_OPEN              = 522
++	SYS_NECP_SESSION_ACTION            = 523
++	SYS_SETATTRLISTAT                  = 524
++	SYS_NET_QOS_GUIDELINE              = 525
++	SYS_FMOUNT                         = 526
++	SYS_NTP_ADJTIME                    = 527
++	SYS_NTP_GETTIME                    = 528
++	SYS_OS_FAULT_WITH_PAYLOAD          = 529
++	SYS_MAXSYSCALL                     = 530
+ 	SYS_INVALID                        = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
+index 075816c3..7ab2130b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
+@@ -1,4 +1,4 @@
+-// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.2.sdk/usr/include/sys/syscall.h
++// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm64,darwin
+@@ -129,6 +129,7 @@ const (
+ 	SYS_SETEGID                        = 182
+ 	SYS_SETEUID                        = 183
+ 	SYS_SIGRETURN                      = 184
++	SYS_THREAD_SELFCOUNTS              = 186
+ 	SYS_FDATASYNC                      = 187
+ 	SYS_STAT                           = 188
+ 	SYS_FSTAT                          = 189
+@@ -288,6 +289,7 @@ const (
+ 	SYS_THREAD_SELFID                  = 372
+ 	SYS_LEDGER                         = 373
+ 	SYS_KEVENT_QOS                     = 374
++	SYS_KEVENT_ID                      = 375
+ 	SYS___MAC_EXECVE                   = 380
+ 	SYS___MAC_SYSCALL                  = 381
+ 	SYS___MAC_GET_FILE                 = 382
+@@ -421,6 +423,14 @@ const (
+ 	SYS_FS_SNAPSHOT                    = 518
+ 	SYS_TERMINATE_WITH_PAYLOAD         = 520
+ 	SYS_ABORT_WITH_PAYLOAD             = 521
+-	SYS_MAXSYSCALL                     = 522
++	SYS_NECP_SESSION_OPEN              = 522
++	SYS_NECP_SESSION_ACTION            = 523
++	SYS_SETATTRLISTAT                  = 524
++	SYS_NET_QOS_GUIDELINE              = 525
++	SYS_FMOUNT                         = 526
++	SYS_NTP_ADJTIME                    = 527
++	SYS_NTP_GETTIME                    = 528
++	SYS_OS_FAULT_WITH_PAYLOAD          = 529
++	SYS_MAXSYSCALL                     = 530
+ 	SYS_INVALID                        = 63
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+index b2c9ef81..464c9a98 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
+@@ -1,4 +1,4 @@
+-// mksysnum_dragonfly.pl
++// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,dragonfly
+@@ -13,7 +13,7 @@ const (
+ 	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_WAIT4         = 7   // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int
+ 	SYS_LINK          = 9   // { int link(char *path, char *link); }
+ 	SYS_UNLINK        = 10  // { int unlink(char *path); }
+ 	SYS_CHDIR         = 12  // { int chdir(char *path); }
+@@ -22,17 +22,17 @@ const (
+ 	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_GETFSSTAT     = 18  // { int getfsstat(struct statfs *buf, long bufsize, int flags); }
+ 	SYS_GETPID        = 20  // { pid_t getpid(void); }
+-	SYS_MOUNT         = 21  // { int mount(char *type, char *path, int flags, \
++	SYS_MOUNT         = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }
+ 	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_PTRACE        = 26  // { int ptrace(int req, pid_t pid, caddr_t addr, int data); }
+ 	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_RECVFROM      = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); }
+ 	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); }
+@@ -45,8 +45,8 @@ const (
+ 	SYS_DUP           = 41  // { int dup(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_PROFIL        = 44  // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); }
++	SYS_KTRACE        = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }
+ 	SYS_GETGID        = 47  // { gid_t getgid(void); }
+ 	SYS_GETLOGIN      = 49  // { int getlogin(char *namebuf, u_int namelen); }
+ 	SYS_SETLOGIN      = 50  // { int setlogin(char *namebuf); }
+@@ -67,32 +67,32 @@ const (
+ 	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_MINCORE       = 78  // { int mincore(const void *addr, size_t len, char *vec); }
+ 	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_SETITIMER     = 83  // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); }
+ 	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(int from, 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_SELECT        = 93  // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
+ 	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_SETSOCKOPT    = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); }
+ 	SYS_LISTEN        = 106 // { int listen(int s, int backlog); }
+-	SYS_GETTIMEOFDAY  = 116 // { int gettimeofday(struct timeval *tp, \
++	SYS_GETTIMEOFDAY  = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
+ 	SYS_GETRUSAGE     = 117 // { int getrusage(int who, struct rusage *rusage); }
+-	SYS_GETSOCKOPT    = 118 // { int getsockopt(int s, int level, int name, \
++	SYS_GETSOCKOPT    = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
+ 	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_WRITEV        = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_SETTIMEOFDAY  = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
+ 	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); }
+@@ -100,15 +100,15 @@ const (
+ 	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_SENDTO        = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); }
+ 	SYS_SHUTDOWN      = 134 // { int shutdown(int s, int how); }
+-	SYS_SOCKETPAIR    = 135 // { int socketpair(int domain, int type, int protocol, \
++	SYS_SOCKETPAIR    = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
+ 	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_ADJTIME       = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); }
+ 	SYS_SETSID        = 147 // { int setsid(void); }
+-	SYS_QUOTACTL      = 148 // { int quotactl(char *path, int cmd, int uid, \
++	SYS_QUOTACTL      = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
+ 	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); }
+@@ -116,53 +116,53 @@ const (
+ 	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_RTPRIO        = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++	SYS_EXTPREAD      = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); }
++	SYS_EXTPWRITE     = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); }
+ 	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_GETRLIMIT     = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int
++	SYS_SETRLIMIT     = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++	SYS_MMAP          = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); }
+ 	// SYS_NOSYS = 198;  // { int nosys(void); } __syscall __syscall_args int
+-	SYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, \
++	SYS_LSEEK                  = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); }
+ 	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___SYSCTL               = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
+ 	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_POLL                   = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); }
++	SYS___SEMCTL               = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
+ 	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_SEMOP                  = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); }
++	SYS_MSGCTL                 = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ 	SYS_MSGGET                 = 225 // { int msgget(key_t key, int msgflg); }
+-	SYS_MSGSND                 = 226 // { int msgsnd(int msqid, const 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_MSGSND                 = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV                 = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++	SYS_SHMAT                  = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); }
++	SYS_SHMCTL                 = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
+ 	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_CLOCK_GETTIME          = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); }
++	SYS_CLOCK_SETTIME          = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES           = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++	SYS_NANOSLEEP              = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ 	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_OPENBSD_POLL           = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ 	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_EXTPREADV              = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, u_int iovcnt, int flags, off_t offset); }
++	SYS_EXTPWRITEV             = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,u_int iovcnt, int flags, off_t offset); }
+ 	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); }
+@@ -200,34 +200,34 @@ const (
+ 	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_SIGPROCMASK            = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); }
+ 	SYS_SIGSUSPEND             = 341 // { int sigsuspend(const sigset_t *sigmask); }
+-	SYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, \
++	SYS_SIGACTION              = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
+ 	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_SIGTIMEDWAIT           = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); }
++	SYS_SIGWAITINFO            = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); }
++	SYS___ACL_GET_FILE         = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FILE         = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_GET_FD           = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FD           = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_FILE      = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
+ 	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___ACL_ACLCHECK_FILE    = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_ACLCHECK_FD      = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS_EXTATTRCTL             = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++	SYS_EXTATTR_SET_FILE       = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FILE       = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FILE    = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
+ 	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_KEVENT                 = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ 	SYS_KENV                   = 390 // { int kenv(int what, const char *name, char *value, int len); }
+ 	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_SENDFILE               = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
+ 	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); }
+@@ -245,58 +245,58 @@ const (
+ 	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_GETDIRENTRIES          = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
+ 	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_USCHED_SET             = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); }
+ 	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_VMSPACE_CTL            = 488 // { int vmspace_ctl(void *id, int cmd, 		struct trapframe *tframe,	struct vextframe *vframe); }
++	SYS_VMSPACE_MMAP           = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); }
++	SYS_VMSPACE_MUNMAP         = 490 // { int vmspace_munmap(void *id, void *addr,	size_t len); }
++	SYS_VMSPACE_MCONTROL       = 491 // { int vmspace_mcontrol(void *id, void *addr, 	size_t len, int behav, off_t value); }
++	SYS_VMSPACE_PREAD          = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); }
++	SYS_VMSPACE_PWRITE         = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); }
+ 	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_PSELECT                = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts,    const sigset_t *sigmask); }
+ 	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_GETVFSSTAT             = 503 // { int getvfsstat(struct statfs *buf,          struct statvfs *vbuf, long vbufsize, int flags); }
+ 	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_FSTATAT                = 505 // { int fstatat(int fd, char *path, 	struct stat *sb, int flags); }
++	SYS_FCHMODAT               = 506 // { int fchmodat(int fd, char *path, int mode, int flags); }
++	SYS_FCHOWNAT               = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); }
+ 	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_FACCESSAT              = 509 // { int faccessat(int fd, char *path, int amode, int flags); }
++	SYS_MQ_OPEN                = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); }
+ 	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_MQ_GETATTR             = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); }
++	SYS_MQ_SETATTR             = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); }
++	SYS_MQ_NOTIFY              = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); }
++	SYS_MQ_SEND                = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); }
++	SYS_MQ_RECEIVE             = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); }
++	SYS_MQ_TIMEDSEND           = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); }
++	SYS_MQ_TIMEDRECEIVE        = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); }
+ 	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_RENAMEAT               = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); }
+ 	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_MKNODAT                = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); }
++	SYS_READLINKAT             = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
+ 	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_VQUOTACTL              = 530 // { int vquotactl(const char *path, struct plistref *pref); }
++	SYS_LINKAT                 = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); }
+ 	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); }
+@@ -308,7 +308,7 @@ const (
+ 	SYS_FUTIMENS               = 540 // { int futimens(int fd, const struct timespec *ts); }
+ 	SYS_ACCEPT4                = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); }
+ 	SYS_LWP_SETNAME            = 542 // { int lwp_setname(lwpid_t tid, const char *name); }
+-	SYS_PPOLL                  = 543 // { int ppoll(struct pollfd *fds, u_int nfds, \
++	SYS_PPOLL                  = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); }
+ 	SYS_LWP_SETAFFINITY        = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); }
+ 	SYS_LWP_GETAFFINITY        = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); }
+ 	SYS_LWP_CREATE2            = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); }
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+index b64a8122..9474974b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
+@@ -1,4 +1,4 @@
+-// mksysnum_freebsd.pl
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,freebsd
+@@ -7,347 +7,390 @@ 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_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_RIGHTS_GET       = 515 // { int __cap_rights_get(int version, \
+-	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_CAP_RIGHTS_LIMIT       = 533 // { int cap_rights_limit(int fd, \
+-	SYS_CAP_IOCTLS_LIMIT       = 534 // { int cap_ioctls_limit(int fd, \
+-	SYS_CAP_IOCTLS_GET         = 535 // { ssize_t cap_ioctls_get(int fd, \
+-	SYS_CAP_FCNTLS_LIMIT       = 536 // { int cap_fcntls_limit(int fd, \
+-	SYS_CAP_FCNTLS_GET         = 537 // { int cap_fcntls_get(int fd, \
+-	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, \
+-	SYS_FUTIMENS               = 546 // { int futimens(int fd, \
+-	SYS_UTIMENSAT              = 547 // { int utimensat(int fd, \
++	SYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void
++	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, struct rusage *rusage); }
++	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_GETPID                   = 20  // { pid_t getpid(void); }
++	SYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }
++	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, int data); }
++	SYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }
++	SYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }
++	SYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++	SYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++	SYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	SYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	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, size_t offset, u_int scale); }
++	SYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }
++	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  // { ssize_t readlink(char *path, char *buf, size_t 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  // { 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 ovadvise_args int
++	SYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }
++	SYS_MPROTECT                 = 74  // { int mprotect(const 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, char *vec); }
++	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, struct itimerval *oitv); }
++	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, fd_set *ex, struct timeval *tv); }
++	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, caddr_t val, int valsize); }
++	SYS_LISTEN                   = 106 // { int listen(int s, int backlog); }
++	SYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }
++	SYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++	SYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++	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, int flags, caddr_t to, int tolen); }
++	SYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }
++	SYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++	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, struct timeval *olddelta); }
++	SYS_SETSID                   = 147 // { int setsid(void); }
++	SYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++	SYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++	SYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }
++	SYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++	SYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++	SYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }
++	SYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++	SYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++	SYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++	SYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++	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, struct rlimit *rlp); } getrlimit __getrlimit_args int
++	SYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++	SYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++	SYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++	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, int timeout); }
++	SYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }
++	SYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }
++	SYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++	SYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++	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, struct timespec *tp); }
++	SYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++	SYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++	SYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }
++	SYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++	SYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++	SYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }
++	SYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++	SYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++	SYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++	SYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++	SYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++	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, int timeout); }
++	SYS_ISSETUGID                = 253 // { int issetugid(void); }
++	SYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }
++	SYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }
++	SYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }
++	SYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++	SYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }
++	SYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }
++	SYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }
++	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, u_int iovcnt, off_t offset); }
++	SYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++	SYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++	SYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++	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 // { ssize_t 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_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, 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, sigset_t *oset); }
++	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, siginfo_t *info, const struct timespec *timeout); }
++	SYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++	SYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++	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, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++	SYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++	SYS_AIO_WAITCOMPLETE         = 359 // { ssize_t 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, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++	SYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++	SYS___SETUGID                = 374 // { int __setugid(int flag); }
++	SYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }
++	SYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	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, struct mac *mac_p); }
++	SYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++	SYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++	SYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }
++	SYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long 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, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++	SYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++	SYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++	SYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }
++	SYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }
++	SYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++	SYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }
++	SYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }
++	SYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }
++	SYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }
++	SYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++	SYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++	SYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }
++	SYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }
++	SYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }
++	SYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++	SYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++	SYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++	SYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++	SYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++	SYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++	SYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }
++	SYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }
++	SYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++	SYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }
++	SYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++	SYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }
++	SYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++	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_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }
++	SYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++	SYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }
++	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, u_int length); }
++	SYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }
++	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( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_AUDITCTL                 = 453 // { int auditctl(char *path); }
++	SYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++	SYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }
++	SYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++	SYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++	SYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,		const struct mq_attr *attr,		struct mq_attr *oattr); }
++	SYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,	char *msg_ptr, size_t msg_len,	unsigned *msg_prio,			const struct timespec *abs_timeout); }
++	SYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,		const char *msg_ptr, size_t msg_len,unsigned msg_prio,			const struct timespec *abs_timeout);}
++	SYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,		const struct sigevent *sigev); }
++	SYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }
++	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_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++	SYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++	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, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++	SYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++	SYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++	SYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++	SYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++	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, mode_t mode); }
++	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, cpusetid_t setid); }
++	SYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++	SYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++	SYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++	SYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++	SYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }
++	SYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++	SYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++	SYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++	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, dev_t dev); }
++	SYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++	SYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++	SYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++	SYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++	SYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }
++	SYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }
++	SYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }
++	SYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }
++	SYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }
++	SYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++	SYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }
++	SYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++	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, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++	SYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++	SYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }
++	SYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++	SYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++	SYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++	SYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++	SYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++	SYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++	SYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++	SYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++	SYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++	SYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++	SYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }
++	SYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++	SYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++	SYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++	SYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }
++	SYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++	SYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++	SYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++	SYS_FDATASYNC                = 550 // { int fdatasync(int fd); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+index 81722ac9..48a7beae 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
+@@ -1,4 +1,4 @@
+-// mksysnum_freebsd.pl
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,freebsd
+@@ -7,347 +7,390 @@ 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_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_RIGHTS_GET       = 515 // { int __cap_rights_get(int version, \
+-	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_CAP_RIGHTS_LIMIT       = 533 // { int cap_rights_limit(int fd, \
+-	SYS_CAP_IOCTLS_LIMIT       = 534 // { int cap_ioctls_limit(int fd, \
+-	SYS_CAP_IOCTLS_GET         = 535 // { ssize_t cap_ioctls_get(int fd, \
+-	SYS_CAP_FCNTLS_LIMIT       = 536 // { int cap_fcntls_limit(int fd, \
+-	SYS_CAP_FCNTLS_GET         = 537 // { int cap_fcntls_get(int fd, \
+-	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, \
+-	SYS_FUTIMENS               = 546 // { int futimens(int fd, \
+-	SYS_UTIMENSAT              = 547 // { int utimensat(int fd, \
++	SYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void
++	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, struct rusage *rusage); }
++	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_GETPID                   = 20  // { pid_t getpid(void); }
++	SYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }
++	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, int data); }
++	SYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }
++	SYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }
++	SYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++	SYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++	SYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	SYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	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, size_t offset, u_int scale); }
++	SYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }
++	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  // { ssize_t readlink(char *path, char *buf, size_t 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  // { 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 ovadvise_args int
++	SYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }
++	SYS_MPROTECT                 = 74  // { int mprotect(const 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, char *vec); }
++	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, struct itimerval *oitv); }
++	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, fd_set *ex, struct timeval *tv); }
++	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, caddr_t val, int valsize); }
++	SYS_LISTEN                   = 106 // { int listen(int s, int backlog); }
++	SYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }
++	SYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++	SYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++	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, int flags, caddr_t to, int tolen); }
++	SYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }
++	SYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++	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, struct timeval *olddelta); }
++	SYS_SETSID                   = 147 // { int setsid(void); }
++	SYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++	SYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++	SYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }
++	SYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++	SYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++	SYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }
++	SYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++	SYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++	SYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++	SYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++	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, struct rlimit *rlp); } getrlimit __getrlimit_args int
++	SYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++	SYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++	SYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++	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, int timeout); }
++	SYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }
++	SYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }
++	SYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++	SYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++	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, struct timespec *tp); }
++	SYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++	SYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++	SYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }
++	SYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++	SYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++	SYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }
++	SYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++	SYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++	SYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++	SYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++	SYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++	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, int timeout); }
++	SYS_ISSETUGID                = 253 // { int issetugid(void); }
++	SYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }
++	SYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }
++	SYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }
++	SYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++	SYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }
++	SYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }
++	SYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }
++	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, u_int iovcnt, off_t offset); }
++	SYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++	SYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++	SYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++	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 // { ssize_t 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_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, 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, sigset_t *oset); }
++	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, siginfo_t *info, const struct timespec *timeout); }
++	SYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++	SYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++	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, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++	SYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++	SYS_AIO_WAITCOMPLETE         = 359 // { ssize_t 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, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++	SYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++	SYS___SETUGID                = 374 // { int __setugid(int flag); }
++	SYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }
++	SYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	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, struct mac *mac_p); }
++	SYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++	SYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++	SYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }
++	SYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long 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, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++	SYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++	SYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++	SYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }
++	SYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }
++	SYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++	SYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }
++	SYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }
++	SYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }
++	SYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }
++	SYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++	SYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++	SYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }
++	SYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }
++	SYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }
++	SYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++	SYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++	SYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++	SYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++	SYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++	SYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++	SYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }
++	SYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }
++	SYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++	SYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }
++	SYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++	SYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }
++	SYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++	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_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }
++	SYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++	SYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }
++	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, u_int length); }
++	SYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }
++	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( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_AUDITCTL                 = 453 // { int auditctl(char *path); }
++	SYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++	SYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }
++	SYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++	SYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++	SYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,		const struct mq_attr *attr,		struct mq_attr *oattr); }
++	SYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,	char *msg_ptr, size_t msg_len,	unsigned *msg_prio,			const struct timespec *abs_timeout); }
++	SYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,		const char *msg_ptr, size_t msg_len,unsigned msg_prio,			const struct timespec *abs_timeout);}
++	SYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,		const struct sigevent *sigev); }
++	SYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }
++	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_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++	SYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++	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, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++	SYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++	SYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++	SYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++	SYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++	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, mode_t mode); }
++	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, cpusetid_t setid); }
++	SYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++	SYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++	SYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++	SYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++	SYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }
++	SYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++	SYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++	SYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++	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, dev_t dev); }
++	SYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++	SYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++	SYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++	SYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++	SYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }
++	SYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }
++	SYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }
++	SYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }
++	SYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }
++	SYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++	SYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }
++	SYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++	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, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++	SYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++	SYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }
++	SYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++	SYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++	SYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++	SYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++	SYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++	SYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++	SYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++	SYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++	SYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++	SYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++	SYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }
++	SYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++	SYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++	SYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++	SYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }
++	SYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++	SYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++	SYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++	SYS_FDATASYNC                = 550 // { int fdatasync(int fd); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+index 44883141..4a6dfd4a 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
+@@ -1,4 +1,4 @@
+-// mksysnum_freebsd.pl
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,freebsd
+@@ -7,347 +7,390 @@ 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_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_RIGHTS_GET       = 515 // { int __cap_rights_get(int version, \
+-	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_CAP_RIGHTS_LIMIT       = 533 // { int cap_rights_limit(int fd, \
+-	SYS_CAP_IOCTLS_LIMIT       = 534 // { int cap_ioctls_limit(int fd, \
+-	SYS_CAP_IOCTLS_GET         = 535 // { ssize_t cap_ioctls_get(int fd, \
+-	SYS_CAP_FCNTLS_LIMIT       = 536 // { int cap_fcntls_limit(int fd, \
+-	SYS_CAP_FCNTLS_GET         = 537 // { int cap_fcntls_get(int fd, \
+-	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, \
+-	SYS_FUTIMENS               = 546 // { int futimens(int fd, \
+-	SYS_UTIMENSAT              = 547 // { int utimensat(int fd, \
++	SYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void
++	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, struct rusage *rusage); }
++	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_GETPID                   = 20  // { pid_t getpid(void); }
++	SYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }
++	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, int data); }
++	SYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }
++	SYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }
++	SYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++	SYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++	SYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	SYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	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, size_t offset, u_int scale); }
++	SYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }
++	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  // { ssize_t readlink(char *path, char *buf, size_t 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  // { 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 ovadvise_args int
++	SYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }
++	SYS_MPROTECT                 = 74  // { int mprotect(const 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, char *vec); }
++	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, struct itimerval *oitv); }
++	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, fd_set *ex, struct timeval *tv); }
++	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, caddr_t val, int valsize); }
++	SYS_LISTEN                   = 106 // { int listen(int s, int backlog); }
++	SYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }
++	SYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++	SYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++	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, int flags, caddr_t to, int tolen); }
++	SYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }
++	SYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++	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, struct timeval *olddelta); }
++	SYS_SETSID                   = 147 // { int setsid(void); }
++	SYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++	SYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++	SYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }
++	SYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++	SYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++	SYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }
++	SYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++	SYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++	SYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++	SYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++	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, struct rlimit *rlp); } getrlimit __getrlimit_args int
++	SYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++	SYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++	SYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++	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, int timeout); }
++	SYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }
++	SYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }
++	SYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++	SYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++	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, struct timespec *tp); }
++	SYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++	SYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++	SYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }
++	SYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++	SYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++	SYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }
++	SYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++	SYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++	SYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++	SYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++	SYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++	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, int timeout); }
++	SYS_ISSETUGID                = 253 // { int issetugid(void); }
++	SYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }
++	SYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }
++	SYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }
++	SYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++	SYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }
++	SYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }
++	SYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }
++	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, u_int iovcnt, off_t offset); }
++	SYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++	SYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++	SYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++	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 // { ssize_t 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_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, 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, sigset_t *oset); }
++	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, siginfo_t *info, const struct timespec *timeout); }
++	SYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++	SYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++	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, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++	SYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++	SYS_AIO_WAITCOMPLETE         = 359 // { ssize_t 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, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++	SYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++	SYS___SETUGID                = 374 // { int __setugid(int flag); }
++	SYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }
++	SYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	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, struct mac *mac_p); }
++	SYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++	SYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++	SYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }
++	SYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long 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, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++	SYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++	SYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++	SYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }
++	SYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }
++	SYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++	SYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }
++	SYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }
++	SYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }
++	SYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }
++	SYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++	SYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++	SYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }
++	SYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }
++	SYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }
++	SYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++	SYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++	SYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++	SYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++	SYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++	SYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++	SYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }
++	SYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }
++	SYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++	SYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }
++	SYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++	SYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }
++	SYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++	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_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }
++	SYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++	SYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }
++	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, u_int length); }
++	SYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }
++	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( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_AUDITCTL                 = 453 // { int auditctl(char *path); }
++	SYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++	SYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }
++	SYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++	SYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++	SYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,		const struct mq_attr *attr,		struct mq_attr *oattr); }
++	SYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,	char *msg_ptr, size_t msg_len,	unsigned *msg_prio,			const struct timespec *abs_timeout); }
++	SYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,		const char *msg_ptr, size_t msg_len,unsigned msg_prio,			const struct timespec *abs_timeout);}
++	SYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,		const struct sigevent *sigev); }
++	SYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }
++	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_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++	SYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++	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, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++	SYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++	SYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++	SYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++	SYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++	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, mode_t mode); }
++	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, cpusetid_t setid); }
++	SYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++	SYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++	SYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++	SYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++	SYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }
++	SYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++	SYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++	SYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++	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, dev_t dev); }
++	SYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++	SYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++	SYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++	SYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++	SYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }
++	SYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }
++	SYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }
++	SYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }
++	SYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }
++	SYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++	SYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }
++	SYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++	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, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++	SYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++	SYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }
++	SYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++	SYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++	SYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++	SYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++	SYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++	SYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++	SYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++	SYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++	SYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++	SYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++	SYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }
++	SYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++	SYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++	SYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++	SYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }
++	SYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++	SYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++	SYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++	SYS_FDATASYNC                = 550 // { int fdatasync(int fd); }
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+new file mode 100644
+index 00000000..3e51af8e
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go
+@@ -0,0 +1,396 @@
++// go run mksysnum.go https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build arm64,freebsd
++
++package unix
++
++const (
++	// SYS_NOSYS = 0;  // { int nosys(void); } syscall nosys_args int
++	SYS_EXIT                     = 1   // { void sys_exit(int rval); } exit sys_exit_args void
++	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, struct rusage *rusage); }
++	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_GETPID                   = 20  // { pid_t getpid(void); }
++	SYS_MOUNT                    = 21  // { int mount(char *type, char *path, int flags, caddr_t data); }
++	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, int data); }
++	SYS_RECVMSG                  = 27  // { int recvmsg(int s, struct msghdr *msg, int flags); }
++	SYS_SENDMSG                  = 28  // { int sendmsg(int s, struct msghdr *msg, int flags); }
++	SYS_RECVFROM                 = 29  // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); }
++	SYS_ACCEPT                   = 30  // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); }
++	SYS_GETPEERNAME              = 31  // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	SYS_GETSOCKNAME              = 32  // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); }
++	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, size_t offset, u_int scale); }
++	SYS_KTRACE                   = 45  // { int ktrace(const char *fname, int ops, int facs, int pid); }
++	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  // { ssize_t readlink(char *path, char *buf, size_t 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  // { 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 ovadvise_args int
++	SYS_MUNMAP                   = 73  // { int munmap(void *addr, size_t len); }
++	SYS_MPROTECT                 = 74  // { int mprotect(const 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, char *vec); }
++	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, struct itimerval *oitv); }
++	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, fd_set *ex, struct timeval *tv); }
++	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, caddr_t val, int valsize); }
++	SYS_LISTEN                   = 106 // { int listen(int s, int backlog); }
++	SYS_GETTIMEOFDAY             = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_GETRUSAGE                = 117 // { int getrusage(int who, struct rusage *rusage); }
++	SYS_GETSOCKOPT               = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); }
++	SYS_READV                    = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_WRITEV                   = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); }
++	SYS_SETTIMEOFDAY             = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); }
++	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, int flags, caddr_t to, int tolen); }
++	SYS_SHUTDOWN                 = 134 // { int shutdown(int s, int how); }
++	SYS_SOCKETPAIR               = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); }
++	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, struct timeval *olddelta); }
++	SYS_SETSID                   = 147 // { int setsid(void); }
++	SYS_QUOTACTL                 = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); }
++	SYS_NLM_SYSCALL              = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); }
++	SYS_NFSSVC                   = 155 // { int nfssvc(int flag, caddr_t argp); }
++	SYS_LGETFH                   = 160 // { int lgetfh(char *fname, struct fhandle *fhp); }
++	SYS_GETFH                    = 161 // { int getfh(char *fname, struct fhandle *fhp); }
++	SYS_SYSARCH                  = 165 // { int sysarch(int op, char *parms); }
++	SYS_RTPRIO                   = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); }
++	SYS_SEMSYS                   = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); }
++	SYS_MSGSYS                   = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); }
++	SYS_SHMSYS                   = 171 // { int shmsys(int which, int a2, int a3, int a4); }
++	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, struct rlimit *rlp); } getrlimit __getrlimit_args int
++	SYS_SETRLIMIT                = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int
++	SYS_GETDIRENTRIES            = 196 // { int getdirentries(int fd, char *buf, u_int count, long *basep); }
++	SYS___SYSCTL                 = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int
++	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, int timeout); }
++	SYS_SEMGET                   = 221 // { int semget(key_t key, int nsems, int semflg); }
++	SYS_SEMOP                    = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_MSGGET                   = 225 // { int msgget(key_t key, int msgflg); }
++	SYS_MSGSND                   = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV                   = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); }
++	SYS_SHMAT                    = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); }
++	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, struct timespec *tp); }
++	SYS_CLOCK_SETTIME            = 233 // { int clock_settime( clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES             = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); }
++	SYS_KTIMER_CREATE            = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); }
++	SYS_KTIMER_DELETE            = 236 // { int ktimer_delete(int timerid); }
++	SYS_KTIMER_SETTIME           = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); }
++	SYS_KTIMER_GETTIME           = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); }
++	SYS_KTIMER_GETOVERRUN        = 239 // { int ktimer_getoverrun(int timerid); }
++	SYS_NANOSLEEP                = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_FFCLOCK_GETCOUNTER       = 241 // { int ffclock_getcounter(ffcounter *ffcount); }
++	SYS_FFCLOCK_SETESTIMATE      = 242 // { int ffclock_setestimate( struct ffclock_estimate *cest); }
++	SYS_FFCLOCK_GETESTIMATE      = 243 // { int ffclock_getestimate( struct ffclock_estimate *cest); }
++	SYS_CLOCK_NANOSLEEP          = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); }
++	SYS_CLOCK_GETCPUCLOCKID2     = 247 // { int clock_getcpuclockid2(id_t id,int which, clockid_t *clock_id); }
++	SYS_NTP_GETTIME              = 248 // { int ntp_gettime(struct ntptimeval *ntvp); }
++	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, int timeout); }
++	SYS_ISSETUGID                = 253 // { int issetugid(void); }
++	SYS_LCHOWN                   = 254 // { int lchown(char *path, int uid, int gid); }
++	SYS_AIO_READ                 = 255 // { int aio_read(struct aiocb *aiocbp); }
++	SYS_AIO_WRITE                = 256 // { int aio_write(struct aiocb *aiocbp); }
++	SYS_LIO_LISTIO               = 257 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); }
++	SYS_GETDENTS                 = 272 // { int getdents(int fd, char *buf, size_t count); }
++	SYS_LCHMOD                   = 274 // { int lchmod(char *path, mode_t mode); }
++	SYS_LUTIMES                  = 276 // { int lutimes(char *path, struct timeval *tptr); }
++	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, u_int iovcnt, off_t offset); }
++	SYS_PWRITEV                  = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); }
++	SYS_FHOPEN                   = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); }
++	SYS_FHSTAT                   = 299 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
++	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 // { ssize_t 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_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, 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, sigset_t *oset); }
++	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, siginfo_t *info, const struct timespec *timeout); }
++	SYS_SIGWAITINFO              = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); }
++	SYS___ACL_GET_FILE           = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FILE           = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_GET_FD             = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_FD             = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_FILE        = 351 // { int __acl_delete_file(const char *path, acl_type_t type); }
++	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, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_ACLCHECK_FD        = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); }
++	SYS_EXTATTRCTL               = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); }
++	SYS_EXTATTR_SET_FILE         = 356 // { ssize_t extattr_set_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FILE         = 357 // { ssize_t extattr_get_file( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FILE      = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); }
++	SYS_AIO_WAITCOMPLETE         = 359 // { ssize_t 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, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
++	SYS_EXTATTR_SET_FD           = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_FD           = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_FD        = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); }
++	SYS___SETUGID                = 374 // { int __setugid(int flag); }
++	SYS_EACCESS                  = 376 // { int eaccess(char *path, int amode); }
++	SYS_NMOUNT                   = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	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, struct mac *mac_p); }
++	SYS___MAC_GET_FILE           = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_FD             = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); }
++	SYS___MAC_SET_FILE           = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); }
++	SYS_KENV                     = 390 // { int kenv(int what, const char *name, char *value, int len); }
++	SYS_LCHFLAGS                 = 391 // { int lchflags(const char *path, u_long 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, struct sf_hdtr *hdtr, off_t *sbytes, int flags); }
++	SYS_MAC_SYSCALL              = 394 // { int mac_syscall(const char *policy, int call, void *arg); }
++	SYS_GETFSSTAT                = 395 // { int getfsstat(struct statfs *buf, long bufsize, int mode); }
++	SYS_STATFS                   = 396 // { int statfs(char *path, struct statfs *buf); }
++	SYS_FSTATFS                  = 397 // { int fstatfs(int fd, struct statfs *buf); }
++	SYS_FHSTATFS                 = 398 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); }
++	SYS_KSEM_CLOSE               = 400 // { int ksem_close(semid_t id); }
++	SYS_KSEM_POST                = 401 // { int ksem_post(semid_t id); }
++	SYS_KSEM_WAIT                = 402 // { int ksem_wait(semid_t id); }
++	SYS_KSEM_TRYWAIT             = 403 // { int ksem_trywait(semid_t id); }
++	SYS_KSEM_INIT                = 404 // { int ksem_init(semid_t *idp, unsigned int value); }
++	SYS_KSEM_OPEN                = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); }
++	SYS_KSEM_UNLINK              = 406 // { int ksem_unlink(const char *name); }
++	SYS_KSEM_GETVALUE            = 407 // { int ksem_getvalue(semid_t id, int *val); }
++	SYS_KSEM_DESTROY             = 408 // { int ksem_destroy(semid_t id); }
++	SYS___MAC_GET_PID            = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); }
++	SYS___MAC_GET_LINK           = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); }
++	SYS___MAC_SET_LINK           = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); }
++	SYS_EXTATTR_SET_LINK         = 412 // { ssize_t extattr_set_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_GET_LINK         = 413 // { ssize_t extattr_get_link( const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); }
++	SYS_EXTATTR_DELETE_LINK      = 414 // { int extattr_delete_link( const char *path, int attrnamespace, const char *attrname); }
++	SYS___MAC_EXECVE             = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); }
++	SYS_SIGACTION                = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); }
++	SYS_SIGRETURN                = 417 // { int sigreturn( const struct __ucontext *sigcntxp); }
++	SYS_GETCONTEXT               = 421 // { int getcontext(struct __ucontext *ucp); }
++	SYS_SETCONTEXT               = 422 // { int setcontext( const struct __ucontext *ucp); }
++	SYS_SWAPCONTEXT              = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); }
++	SYS_SWAPOFF                  = 424 // { int swapoff(const char *name); }
++	SYS___ACL_GET_LINK           = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_SET_LINK           = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS___ACL_DELETE_LINK        = 427 // { int __acl_delete_link(const char *path, acl_type_t type); }
++	SYS___ACL_ACLCHECK_LINK      = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); }
++	SYS_SIGWAIT                  = 429 // { int sigwait(const sigset_t *set, int *sig); }
++	SYS_THR_CREATE               = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); }
++	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_JAIL_ATTACH              = 436 // { int jail_attach(int jid); }
++	SYS_EXTATTR_LIST_FD          = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_FILE        = 438 // { ssize_t extattr_list_file( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_EXTATTR_LIST_LINK        = 439 // { ssize_t extattr_list_link( const char *path, int attrnamespace, void *data, size_t nbytes); }
++	SYS_KSEM_TIMEDWAIT           = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); }
++	SYS_THR_SUSPEND              = 442 // { int thr_suspend( const struct timespec *timeout); }
++	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, u_int length); }
++	SYS_AUDITON                  = 446 // { int auditon(int cmd, void *data, u_int length); }
++	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( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_SETAUDIT_ADDR            = 452 // { int setaudit_addr( struct auditinfo_addr *auditinfo_addr, u_int length); }
++	SYS_AUDITCTL                 = 453 // { int auditctl(char *path); }
++	SYS__UMTX_OP                 = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); }
++	SYS_THR_NEW                  = 455 // { int thr_new(struct thr_param *param, int param_size); }
++	SYS_SIGQUEUE                 = 456 // { int sigqueue(pid_t pid, int signum, void *value); }
++	SYS_KMQ_OPEN                 = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); }
++	SYS_KMQ_SETATTR              = 458 // { int kmq_setattr(int mqd,		const struct mq_attr *attr,		struct mq_attr *oattr); }
++	SYS_KMQ_TIMEDRECEIVE         = 459 // { int kmq_timedreceive(int mqd,	char *msg_ptr, size_t msg_len,	unsigned *msg_prio,			const struct timespec *abs_timeout); }
++	SYS_KMQ_TIMEDSEND            = 460 // { int kmq_timedsend(int mqd,		const char *msg_ptr, size_t msg_len,unsigned msg_prio,			const struct timespec *abs_timeout);}
++	SYS_KMQ_NOTIFY               = 461 // { int kmq_notify(int mqd,		const struct sigevent *sigev); }
++	SYS_KMQ_UNLINK               = 462 // { int kmq_unlink(const char *path); }
++	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_AIO_FSYNC                = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); }
++	SYS_RTPRIO_THREAD            = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); }
++	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, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); }
++	SYS_SCTP_GENERIC_RECVMSG     = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr * from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
++	SYS_PREAD                    = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); }
++	SYS_PWRITE                   = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); }
++	SYS_MMAP                     = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); }
++	SYS_LSEEK                    = 478 // { off_t lseek(int fd, off_t offset, int whence); }
++	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, mode_t mode); }
++	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, cpusetid_t setid); }
++	SYS_CPUSET_GETID             = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); }
++	SYS_CPUSET_GETAFFINITY       = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); }
++	SYS_CPUSET_SETAFFINITY       = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); }
++	SYS_FACCESSAT                = 489 // { int faccessat(int fd, char *path, int amode, int flag); }
++	SYS_FCHMODAT                 = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT                 = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_FEXECVE                  = 492 // { int fexecve(int fd, char **argv, char **envv); }
++	SYS_FSTATAT                  = 493 // { int fstatat(int fd, char *path, struct stat *buf, int flag); }
++	SYS_FUTIMESAT                = 494 // { int futimesat(int fd, char *path, struct timeval *times); }
++	SYS_LINKAT                   = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); }
++	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, dev_t dev); }
++	SYS_OPENAT                   = 499 // { int openat(int fd, char *path, int flag, mode_t mode); }
++	SYS_READLINKAT               = 500 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); }
++	SYS_RENAMEAT                 = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); }
++	SYS_SYMLINKAT                = 502 // { int symlinkat(char *path1, int fd, char *path2); }
++	SYS_UNLINKAT                 = 503 // { int unlinkat(int fd, char *path, int flag); }
++	SYS_POSIX_OPENPT             = 504 // { int posix_openpt(int flags); }
++	SYS_GSSD_SYSCALL             = 505 // { int gssd_syscall(char *path); }
++	SYS_JAIL_GET                 = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_SET                 = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); }
++	SYS_JAIL_REMOVE              = 508 // { int jail_remove(int jid); }
++	SYS_CLOSEFROM                = 509 // { int closefrom(int lowfd); }
++	SYS___SEMCTL                 = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_MSGCTL                   = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); }
++	SYS_SHMCTL                   = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_LPATHCONF                = 513 // { int lpathconf(char *path, int name); }
++	SYS___CAP_RIGHTS_GET         = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); }
++	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, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); }
++	SYS_GETLOGINCLASS            = 523 // { int getloginclass(char *namebuf, size_t namelen); }
++	SYS_SETLOGINCLASS            = 524 // { int setloginclass(const char *namebuf); }
++	SYS_RCTL_GET_RACCT           = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_RULES           = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_GET_LIMITS          = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_ADD_RULE            = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_RCTL_REMOVE_RULE         = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); }
++	SYS_POSIX_FALLOCATE          = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); }
++	SYS_POSIX_FADVISE            = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); }
++	SYS_WAIT6                    = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); }
++	SYS_CAP_RIGHTS_LIMIT         = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); }
++	SYS_CAP_IOCTLS_LIMIT         = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); }
++	SYS_CAP_IOCTLS_GET           = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); }
++	SYS_CAP_FCNTLS_LIMIT         = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); }
++	SYS_CAP_FCNTLS_GET           = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); }
++	SYS_BINDAT                   = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CONNECTAT                = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); }
++	SYS_CHFLAGSAT                = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); }
++	SYS_ACCEPT4                  = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); }
++	SYS_PIPE2                    = 542 // { int pipe2(int *fildes, int flags); }
++	SYS_AIO_MLOCK                = 543 // { int aio_mlock(struct aiocb *aiocbp); }
++	SYS_PROCCTL                  = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); }
++	SYS_PPOLL                    = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); }
++	SYS_FUTIMENS                 = 546 // { int futimens(int fd, struct timespec *times); }
++	SYS_UTIMENSAT                = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); }
++	SYS_NUMA_GETAFFINITY         = 548 // { int numa_getaffinity(cpuwhich_t which, id_t id, struct vm_domain_policy_entry *policy); }
++	SYS_NUMA_SETAFFINITY         = 549 // { int numa_setaffinity(cpuwhich_t which, id_t id, const struct vm_domain_policy_entry *policy); }
++	SYS_FDATASYNC                = 550 // { int fdatasync(int fd); }
++)
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+index cef4fed0..54559a89 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m32 /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,linux
+@@ -6,383 +6,431 @@
+ 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
++	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
++	SYS_STATX                        = 383
++	SYS_ARCH_PRCTL                   = 384
++	SYS_IO_PGETEVENTS                = 385
++	SYS_RSEQ                         = 386
++	SYS_SEMGET                       = 393
++	SYS_SEMCTL                       = 394
++	SYS_SHMGET                       = 395
++	SYS_SHMCTL                       = 396
++	SYS_SHMAT                        = 397
++	SYS_SHMDT                        = 398
++	SYS_MSGGET                       = 399
++	SYS_MSGSND                       = 400
++	SYS_MSGRCV                       = 401
++	SYS_MSGCTL                       = 402
++	SYS_CLOCK_GETTIME64              = 403
++	SYS_CLOCK_SETTIME64              = 404
++	SYS_CLOCK_ADJTIME64              = 405
++	SYS_CLOCK_GETRES_TIME64          = 406
++	SYS_CLOCK_NANOSLEEP_TIME64       = 407
++	SYS_TIMER_GETTIME64              = 408
++	SYS_TIMER_SETTIME64              = 409
++	SYS_TIMERFD_GETTIME64            = 410
++	SYS_TIMERFD_SETTIME64            = 411
++	SYS_UTIMENSAT_TIME64             = 412
++	SYS_PSELECT6_TIME64              = 413
++	SYS_PPOLL_TIME64                 = 414
++	SYS_IO_PGETEVENTS_TIME64         = 416
++	SYS_RECVMMSG_TIME64              = 417
++	SYS_MQ_TIMEDSEND_TIME64          = 418
++	SYS_MQ_TIMEDRECEIVE_TIME64       = 419
++	SYS_SEMTIMEDOP_TIME64            = 420
++	SYS_RT_SIGTIMEDWAIT_TIME64       = 421
++	SYS_FUTEX_TIME64                 = 422
++	SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423
++	SYS_PIDFD_SEND_SIGNAL            = 424
++	SYS_IO_URING_SETUP               = 425
++	SYS_IO_URING_ENTER               = 426
++	SYS_IO_URING_REGISTER            = 427
++	SYS_OPEN_TREE                    = 428
++	SYS_MOVE_MOUNT                   = 429
++	SYS_FSOPEN                       = 430
++	SYS_FSCONFIG                     = 431
++	SYS_FSMOUNT                      = 432
++	SYS_FSPICK                       = 433
++	SYS_PIDFD_OPEN                   = 434
++	SYS_CLONE3                       = 435
++	SYS_OPENAT2                      = 437
++	SYS_PIDFD_GETFD                  = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+index 49bfa127..054a741b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -m64 /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,linux
+@@ -338,4 +338,21 @@ const (
+ 	SYS_PKEY_MPROTECT          = 329
+ 	SYS_PKEY_ALLOC             = 330
+ 	SYS_PKEY_FREE              = 331
++	SYS_STATX                  = 332
++	SYS_IO_PGETEVENTS          = 333
++	SYS_RSEQ                   = 334
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_CLONE3                 = 435
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+index 97b182ef..307f2ba1 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,linux
+@@ -6,356 +6,395 @@
+ 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
++	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
++	SYS_STATX                        = 397
++	SYS_RSEQ                         = 398
++	SYS_IO_PGETEVENTS                = 399
++	SYS_MIGRATE_PAGES                = 400
++	SYS_KEXEC_FILE_LOAD              = 401
++	SYS_CLOCK_GETTIME64              = 403
++	SYS_CLOCK_SETTIME64              = 404
++	SYS_CLOCK_ADJTIME64              = 405
++	SYS_CLOCK_GETRES_TIME64          = 406
++	SYS_CLOCK_NANOSLEEP_TIME64       = 407
++	SYS_TIMER_GETTIME64              = 408
++	SYS_TIMER_SETTIME64              = 409
++	SYS_TIMERFD_GETTIME64            = 410
++	SYS_TIMERFD_SETTIME64            = 411
++	SYS_UTIMENSAT_TIME64             = 412
++	SYS_PSELECT6_TIME64              = 413
++	SYS_PPOLL_TIME64                 = 414
++	SYS_IO_PGETEVENTS_TIME64         = 416
++	SYS_RECVMMSG_TIME64              = 417
++	SYS_MQ_TIMEDSEND_TIME64          = 418
++	SYS_MQ_TIMEDRECEIVE_TIME64       = 419
++	SYS_SEMTIMEDOP_TIME64            = 420
++	SYS_RT_SIGTIMEDWAIT_TIME64       = 421
++	SYS_FUTEX_TIME64                 = 422
++	SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423
++	SYS_PIDFD_SEND_SIGNAL            = 424
++	SYS_IO_URING_SETUP               = 425
++	SYS_IO_URING_ENTER               = 426
++	SYS_IO_URING_REGISTER            = 427
++	SYS_OPEN_TREE                    = 428
++	SYS_MOVE_MOUNT                   = 429
++	SYS_FSOPEN                       = 430
++	SYS_FSCONFIG                     = 431
++	SYS_FSMOUNT                      = 432
++	SYS_FSPICK                       = 433
++	SYS_PIDFD_OPEN                   = 434
++	SYS_CLONE3                       = 435
++	SYS_OPENAT2                      = 437
++	SYS_PIDFD_GETFD                  = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+index 64078435..e9404dd5 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm64,linux
+@@ -282,4 +282,22 @@ const (
+ 	SYS_PKEY_MPROTECT          = 288
+ 	SYS_PKEY_ALLOC             = 289
+ 	SYS_PKEY_FREE              = 290
++	SYS_STATX                  = 291
++	SYS_IO_PGETEVENTS          = 292
++	SYS_RSEQ                   = 293
++	SYS_KEXEC_FILE_LOAD        = 294
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_CLONE3                 = 435
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+index 939567c0..68bb6d29 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build mips,linux
+@@ -6,369 +6,416 @@
+ 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
++	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
++	SYS_STATX                        = 4366
++	SYS_RSEQ                         = 4367
++	SYS_IO_PGETEVENTS                = 4368
++	SYS_SEMGET                       = 4393
++	SYS_SEMCTL                       = 4394
++	SYS_SHMGET                       = 4395
++	SYS_SHMCTL                       = 4396
++	SYS_SHMAT                        = 4397
++	SYS_SHMDT                        = 4398
++	SYS_MSGGET                       = 4399
++	SYS_MSGSND                       = 4400
++	SYS_MSGRCV                       = 4401
++	SYS_MSGCTL                       = 4402
++	SYS_CLOCK_GETTIME64              = 4403
++	SYS_CLOCK_SETTIME64              = 4404
++	SYS_CLOCK_ADJTIME64              = 4405
++	SYS_CLOCK_GETRES_TIME64          = 4406
++	SYS_CLOCK_NANOSLEEP_TIME64       = 4407
++	SYS_TIMER_GETTIME64              = 4408
++	SYS_TIMER_SETTIME64              = 4409
++	SYS_TIMERFD_GETTIME64            = 4410
++	SYS_TIMERFD_SETTIME64            = 4411
++	SYS_UTIMENSAT_TIME64             = 4412
++	SYS_PSELECT6_TIME64              = 4413
++	SYS_PPOLL_TIME64                 = 4414
++	SYS_IO_PGETEVENTS_TIME64         = 4416
++	SYS_RECVMMSG_TIME64              = 4417
++	SYS_MQ_TIMEDSEND_TIME64          = 4418
++	SYS_MQ_TIMEDRECEIVE_TIME64       = 4419
++	SYS_SEMTIMEDOP_TIME64            = 4420
++	SYS_RT_SIGTIMEDWAIT_TIME64       = 4421
++	SYS_FUTEX_TIME64                 = 4422
++	SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423
++	SYS_PIDFD_SEND_SIGNAL            = 4424
++	SYS_IO_URING_SETUP               = 4425
++	SYS_IO_URING_ENTER               = 4426
++	SYS_IO_URING_REGISTER            = 4427
++	SYS_OPEN_TREE                    = 4428
++	SYS_MOVE_MOUNT                   = 4429
++	SYS_FSOPEN                       = 4430
++	SYS_FSCONFIG                     = 4431
++	SYS_FSMOUNT                      = 4432
++	SYS_FSPICK                       = 4433
++	SYS_PIDFD_OPEN                   = 4434
++	SYS_CLONE3                       = 4435
++	SYS_OPENAT2                      = 4437
++	SYS_PIDFD_GETFD                  = 4438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+index 09db9596..4e525118 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build mips64,linux
+@@ -331,4 +331,21 @@ const (
+ 	SYS_PKEY_MPROTECT          = 5323
+ 	SYS_PKEY_ALLOC             = 5324
+ 	SYS_PKEY_FREE              = 5325
++	SYS_STATX                  = 5326
++	SYS_RSEQ                   = 5327
++	SYS_IO_PGETEVENTS          = 5328
++	SYS_PIDFD_SEND_SIGNAL      = 5424
++	SYS_IO_URING_SETUP         = 5425
++	SYS_IO_URING_ENTER         = 5426
++	SYS_IO_URING_REGISTER      = 5427
++	SYS_OPEN_TREE              = 5428
++	SYS_MOVE_MOUNT             = 5429
++	SYS_FSOPEN                 = 5430
++	SYS_FSCONFIG               = 5431
++	SYS_FSMOUNT                = 5432
++	SYS_FSPICK                 = 5433
++	SYS_PIDFD_OPEN             = 5434
++	SYS_CLONE3                 = 5435
++	SYS_OPENAT2                = 5437
++	SYS_PIDFD_GETFD            = 5438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+index d1b872a0..4d9aa300 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build mips64le,linux
+@@ -331,4 +331,21 @@ const (
+ 	SYS_PKEY_MPROTECT          = 5323
+ 	SYS_PKEY_ALLOC             = 5324
+ 	SYS_PKEY_FREE              = 5325
++	SYS_STATX                  = 5326
++	SYS_RSEQ                   = 5327
++	SYS_IO_PGETEVENTS          = 5328
++	SYS_PIDFD_SEND_SIGNAL      = 5424
++	SYS_IO_URING_SETUP         = 5425
++	SYS_IO_URING_ENTER         = 5426
++	SYS_IO_URING_REGISTER      = 5427
++	SYS_OPEN_TREE              = 5428
++	SYS_MOVE_MOUNT             = 5429
++	SYS_FSOPEN                 = 5430
++	SYS_FSCONFIG               = 5431
++	SYS_FSMOUNT                = 5432
++	SYS_FSPICK                 = 5433
++	SYS_PIDFD_OPEN             = 5434
++	SYS_CLONE3                 = 5435
++	SYS_OPENAT2                = 5437
++	SYS_PIDFD_GETFD            = 5438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+index 82ba20f2..64af0707 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build mipsle,linux
+@@ -6,369 +6,416 @@
+ 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
++	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
++	SYS_STATX                        = 4366
++	SYS_RSEQ                         = 4367
++	SYS_IO_PGETEVENTS                = 4368
++	SYS_SEMGET                       = 4393
++	SYS_SEMCTL                       = 4394
++	SYS_SHMGET                       = 4395
++	SYS_SHMCTL                       = 4396
++	SYS_SHMAT                        = 4397
++	SYS_SHMDT                        = 4398
++	SYS_MSGGET                       = 4399
++	SYS_MSGSND                       = 4400
++	SYS_MSGRCV                       = 4401
++	SYS_MSGCTL                       = 4402
++	SYS_CLOCK_GETTIME64              = 4403
++	SYS_CLOCK_SETTIME64              = 4404
++	SYS_CLOCK_ADJTIME64              = 4405
++	SYS_CLOCK_GETRES_TIME64          = 4406
++	SYS_CLOCK_NANOSLEEP_TIME64       = 4407
++	SYS_TIMER_GETTIME64              = 4408
++	SYS_TIMER_SETTIME64              = 4409
++	SYS_TIMERFD_GETTIME64            = 4410
++	SYS_TIMERFD_SETTIME64            = 4411
++	SYS_UTIMENSAT_TIME64             = 4412
++	SYS_PSELECT6_TIME64              = 4413
++	SYS_PPOLL_TIME64                 = 4414
++	SYS_IO_PGETEVENTS_TIME64         = 4416
++	SYS_RECVMMSG_TIME64              = 4417
++	SYS_MQ_TIMEDSEND_TIME64          = 4418
++	SYS_MQ_TIMEDRECEIVE_TIME64       = 4419
++	SYS_SEMTIMEDOP_TIME64            = 4420
++	SYS_RT_SIGTIMEDWAIT_TIME64       = 4421
++	SYS_FUTEX_TIME64                 = 4422
++	SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423
++	SYS_PIDFD_SEND_SIGNAL            = 4424
++	SYS_IO_URING_SETUP               = 4425
++	SYS_IO_URING_ENTER               = 4426
++	SYS_IO_URING_REGISTER            = 4427
++	SYS_OPEN_TREE                    = 4428
++	SYS_MOVE_MOUNT                   = 4429
++	SYS_FSOPEN                       = 4430
++	SYS_FSCONFIG                     = 4431
++	SYS_FSMOUNT                      = 4432
++	SYS_FSPICK                       = 4433
++	SYS_PIDFD_OPEN                   = 4434
++	SYS_CLONE3                       = 4435
++	SYS_OPENAT2                      = 4437
++	SYS_PIDFD_GETFD                  = 4438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+index 8944448a..cc3c067b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build ppc64,linux
+@@ -366,4 +366,35 @@ const (
+ 	SYS_PREADV2                = 380
+ 	SYS_PWRITEV2               = 381
+ 	SYS_KEXEC_FILE_LOAD        = 382
++	SYS_STATX                  = 383
++	SYS_PKEY_ALLOC             = 384
++	SYS_PKEY_FREE              = 385
++	SYS_PKEY_MPROTECT          = 386
++	SYS_RSEQ                   = 387
++	SYS_IO_PGETEVENTS          = 388
++	SYS_SEMTIMEDOP             = 392
++	SYS_SEMGET                 = 393
++	SYS_SEMCTL                 = 394
++	SYS_SHMGET                 = 395
++	SYS_SHMCTL                 = 396
++	SYS_SHMAT                  = 397
++	SYS_SHMDT                  = 398
++	SYS_MSGGET                 = 399
++	SYS_MSGSND                 = 400
++	SYS_MSGRCV                 = 401
++	SYS_MSGCTL                 = 402
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_CLONE3                 = 435
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+index 90a039be..4050ff98 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build ppc64le,linux
+@@ -366,4 +366,35 @@ const (
+ 	SYS_PREADV2                = 380
+ 	SYS_PWRITEV2               = 381
+ 	SYS_KEXEC_FILE_LOAD        = 382
++	SYS_STATX                  = 383
++	SYS_PKEY_ALLOC             = 384
++	SYS_PKEY_FREE              = 385
++	SYS_PKEY_MPROTECT          = 386
++	SYS_RSEQ                   = 387
++	SYS_IO_PGETEVENTS          = 388
++	SYS_SEMTIMEDOP             = 392
++	SYS_SEMGET                 = 393
++	SYS_SEMCTL                 = 394
++	SYS_SHMGET                 = 395
++	SYS_SHMCTL                 = 396
++	SYS_SHMAT                  = 397
++	SYS_SHMDT                  = 398
++	SYS_MSGGET                 = 399
++	SYS_MSGSND                 = 400
++	SYS_MSGRCV                 = 401
++	SYS_MSGCTL                 = 402
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_CLONE3                 = 435
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+similarity index 92%
+copy from vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
+copy to vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+index 64078435..529abb6a 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
+@@ -1,7 +1,7 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build arm64,linux
++// +build riscv64,linux
+ 
+ package unix
+ 
+@@ -44,7 +44,6 @@ const (
+ 	SYS_UNLINKAT               = 35
+ 	SYS_SYMLINKAT              = 36
+ 	SYS_LINKAT                 = 37
+-	SYS_RENAMEAT               = 38
+ 	SYS_UMOUNT2                = 39
+ 	SYS_MOUNT                  = 40
+ 	SYS_PIVOT_ROOT             = 41
+@@ -282,4 +281,22 @@ const (
+ 	SYS_PKEY_MPROTECT          = 288
+ 	SYS_PKEY_ALLOC             = 289
+ 	SYS_PKEY_FREE              = 290
++	SYS_STATX                  = 291
++	SYS_IO_PGETEVENTS          = 292
++	SYS_RSEQ                   = 293
++	SYS_KEXEC_FILE_LOAD        = 294
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_CLONE3                 = 435
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+index aab0cdb1..27665001 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
+@@ -1,4 +1,4 @@
+-// linux/mksysnum.pl -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include -fsigned-char /tmp/include/asm/unistd.h
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build s390x,linux
+@@ -109,6 +109,7 @@ const (
+ 	SYS_PERSONALITY            = 136
+ 	SYS_AFS_SYSCALL            = 137
+ 	SYS_GETDENTS               = 141
++	SYS_SELECT                 = 142
+ 	SYS_FLOCK                  = 143
+ 	SYS_MSYNC                  = 144
+ 	SYS_READV                  = 145
+@@ -151,6 +152,26 @@ const (
+ 	SYS_GETPMSG                = 188
+ 	SYS_PUTPMSG                = 189
+ 	SYS_VFORK                  = 190
++	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_PIVOT_ROOT             = 217
+ 	SYS_MINCORE                = 218
+ 	SYS_MADVISE                = 219
+@@ -222,6 +243,7 @@ const (
+ 	SYS_MKNODAT                = 290
+ 	SYS_FCHOWNAT               = 291
+ 	SYS_FUTIMESAT              = 292
++	SYS_NEWFSTATAT             = 293
+ 	SYS_UNLINKAT               = 294
+ 	SYS_RENAMEAT               = 295
+ 	SYS_LINKAT                 = 296
+@@ -306,26 +328,38 @@ const (
+ 	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
++	SYS_S390_GUARDED_STORAGE   = 378
++	SYS_STATX                  = 379
++	SYS_S390_STHYI             = 380
++	SYS_KEXEC_FILE_LOAD        = 381
++	SYS_IO_PGETEVENTS          = 382
++	SYS_RSEQ                   = 383
++	SYS_PKEY_MPROTECT          = 384
++	SYS_PKEY_ALLOC             = 385
++	SYS_PKEY_FREE              = 386
++	SYS_SEMTIMEDOP             = 392
++	SYS_SEMGET                 = 393
++	SYS_SEMCTL                 = 394
++	SYS_SHMGET                 = 395
++	SYS_SHMCTL                 = 396
++	SYS_SHMAT                  = 397
++	SYS_SHMDT                  = 398
++	SYS_MSGGET                 = 399
++	SYS_MSGSND                 = 400
++	SYS_MSGRCV                 = 401
++	SYS_MSGCTL                 = 402
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_CLONE3                 = 435
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+index c9c129dc..4dc82bb2 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/include /tmp/include/asm/unistd.h
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build sparc64,linux
+ 
+@@ -253,6 +253,7 @@ const (
+ 	SYS_TIMER_GETOVERRUN       = 264
+ 	SYS_TIMER_DELETE           = 265
+ 	SYS_TIMER_CREATE           = 266
++	SYS_VSERVER                = 267
+ 	SYS_IO_SETUP               = 268
+ 	SYS_IO_DESTROY             = 269
+ 	SYS_IO_SUBMIT              = 270
+@@ -345,4 +346,34 @@ const (
+ 	SYS_COPY_FILE_RANGE        = 357
+ 	SYS_PREADV2                = 358
+ 	SYS_PWRITEV2               = 359
++	SYS_STATX                  = 360
++	SYS_IO_PGETEVENTS          = 361
++	SYS_PKEY_MPROTECT          = 362
++	SYS_PKEY_ALLOC             = 363
++	SYS_PKEY_FREE              = 364
++	SYS_RSEQ                   = 365
++	SYS_SEMTIMEDOP             = 392
++	SYS_SEMGET                 = 393
++	SYS_SEMCTL                 = 394
++	SYS_SHMGET                 = 395
++	SYS_SHMCTL                 = 396
++	SYS_SHMAT                  = 397
++	SYS_SHMDT                  = 398
++	SYS_MSGGET                 = 399
++	SYS_MSGSND                 = 400
++	SYS_MSGRCV                 = 401
++	SYS_MSGCTL                 = 402
++	SYS_PIDFD_SEND_SIGNAL      = 424
++	SYS_IO_URING_SETUP         = 425
++	SYS_IO_URING_ENTER         = 426
++	SYS_IO_URING_REGISTER      = 427
++	SYS_OPEN_TREE              = 428
++	SYS_MOVE_MOUNT             = 429
++	SYS_FSOPEN                 = 430
++	SYS_FSCONFIG               = 431
++	SYS_FSMOUNT                = 432
++	SYS_FSPICK                 = 433
++	SYS_PIDFD_OPEN             = 434
++	SYS_OPENAT2                = 437
++	SYS_PIDFD_GETFD            = 438
+ )
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+index 8afda9c4..e66a8c9d 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+@@ -1,5 +1,5 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,netbsd
+ 
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
+index aea8dbec..42c788f2 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,netbsd
+ 
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
+index c6158a7e..0a075717 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
+@@ -1,5 +1,5 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,netbsd
+ 
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+similarity index 99%
+copy from vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
+copy to vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+index 8afda9c4..0291c093 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksysnum_netbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; DO NOT EDIT.
+ 
+-// +build 386,netbsd
++// +build arm64,netbsd
+ 
+ package unix
+ 
+diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+index 3e8ce2a1..b0207d1c 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
+@@ -1,5 +1,5 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,openbsd
+ 
+@@ -9,109 +9,119 @@ 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_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___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
++	SYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }
++	SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ 	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_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ 	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_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ 	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_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ 	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_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }
+ 	SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+-	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
++	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ 	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_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t 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 amode); }
+ 	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_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ 	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_PROFIL         = 44  // { int sys_profil(caddr_t 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_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ 	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_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ 	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_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_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+-	SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
++	SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++	SYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }
+ 	SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+-	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
++	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ 	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_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++	SYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++	SYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }
++	SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++	SYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ 	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_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_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }
++	SYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }
++	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, 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_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }
++	SYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++	SYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++	SYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }
++	SYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++	SYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++	SYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ 	SYS_DUP2           = 90  // { int sys_dup2(int from, int to); }
+-	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
++	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ 	SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+-	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
++	SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ 	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_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ 	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_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }
++	SYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }
+ 	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_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_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, \
+-	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++	SYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++	SYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++	SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ 	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_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++	SYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }
++	SYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++	SYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++	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_KILL           = 122 // { int sys_kill(int pid, int signum); }
+ 	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); }
+@@ -119,89 +129,90 @@ const (
+ 	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_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, \
++	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_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
++	SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++	SYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ 	SYS_SETSID         = 147 // { int sys_setsid(void); }
+-	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
++	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ 	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_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_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_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, \
++	SYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, 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_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+-	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
++	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ 	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_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV         = 227 // { int 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_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+-	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
++	SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ 	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_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++	SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ 	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_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++	SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++	SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++	SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++	SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ 	SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+-	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ 	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_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++	SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ 	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___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ 	SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+-	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ 	SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+-	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
++	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ 	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_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++	SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++	SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++	SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++	SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++	SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++	SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++	SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++	SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++	SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ 	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
+index bd28146d..f0dec6f0 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
+@@ -1,5 +1,5 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,openbsd
+ 
+@@ -9,109 +9,119 @@ 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_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___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
++	SYS_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }
++	SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ 	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_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ 	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_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ 	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_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ 	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_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }
+ 	SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+-	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
++	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ 	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_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t 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 amode); }
+ 	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_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ 	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_PROFIL         = 44  // { int sys_profil(caddr_t 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_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ 	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_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ 	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_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_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+-	SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
++	SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++	SYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }
+ 	SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+-	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
++	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ 	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_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++	SYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++	SYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }
++	SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++	SYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ 	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_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_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }
++	SYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }
++	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, 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_SETPGID        = 82  // { int sys_setpgid(pid_t pid, pid_t pgid); }
++	SYS_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++	SYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++	SYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }
++	SYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++	SYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++	SYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ 	SYS_DUP2           = 90  // { int sys_dup2(int from, int to); }
+-	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
++	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ 	SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+-	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
++	SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ 	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_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ 	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_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }
++	SYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }
+ 	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_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_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, \
+-	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++	SYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++	SYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++	SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ 	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_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++	SYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }
++	SYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++	SYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++	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_KILL           = 122 // { int sys_kill(int pid, int signum); }
+ 	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); }
+@@ -119,89 +129,90 @@ const (
+ 	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_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, \
++	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_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
++	SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++	SYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ 	SYS_SETSID         = 147 // { int sys_setsid(void); }
+-	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
++	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ 	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_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_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_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, \
++	SYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, 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_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+-	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
++	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ 	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_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV         = 227 // { int 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_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+-	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
++	SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ 	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_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++	SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ 	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_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++	SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++	SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++	SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++	SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ 	SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+-	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ 	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_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++	SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ 	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___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ 	SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+-	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ 	SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+-	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
++	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ 	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_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++	SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++	SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++	SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++	SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++	SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++	SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++	SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++	SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++	SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ 	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_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+index 32653e53..33d1dc54 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+@@ -1,5 +1,5 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,openbsd
+ 
+@@ -9,35 +9,35 @@ 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_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_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }
+-	SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
++	SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ 	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_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ 	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_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ 	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_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ 	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_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }
+ 	SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+-	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
++	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ 	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_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t 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 amode); }
+ 	SYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }
+ 	SYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }
+@@ -46,77 +46,81 @@ const (
+ 	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_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ 	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_PROFIL         = 44  // { int sys_profil(caddr_t 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_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ 	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_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ 	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  // { ssize_t sys_readlink(const char *path, \
+-	SYS_EXECVE         = 59  // { int sys_execve(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_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+-	SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
++	SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++	SYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }
+ 	SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+-	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
++	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ 	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_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++	SYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++	SYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }
++	SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++	SYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ 	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_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_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }
++	SYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }
++	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_SENDSYSLOG     = 83  // { int sys_sendsyslog(const void *buf, size_t nbyte); }
+-	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_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++	SYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++	SYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }
++	SYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++	SYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++	SYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ 	SYS_DUP2           = 90  // { int sys_dup2(int from, int to); }
+-	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
++	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ 	SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+-	SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, \
+-	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
++	SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ 	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_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ 	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_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }
+ 	SYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }
+ 	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_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_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, \
+-	SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, \
+-	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++	SYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++	SYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++	SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ 	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_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++	SYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }
++	SYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++	SYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++	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_KILL           = 122 // { int sys_kill(int pid, int signum); }
+ 	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); }
+@@ -125,89 +129,90 @@ const (
+ 	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_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, \
++	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_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
++	SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++	SYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ 	SYS_SETSID         = 147 // { int sys_setsid(void); }
+-	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
++	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ 	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_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_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_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, \
++	SYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, 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_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+-	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
++	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ 	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_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV         = 227 // { int 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_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+-	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
++	SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ 	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_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++	SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ 	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_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++	SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++	SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++	SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++	SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ 	SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+-	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ 	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_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++	SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ 	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___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ 	SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+-	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ 	SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+-	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
++	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ 	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_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++	SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++	SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++	SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++	SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++	SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++	SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++	SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++	SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++	SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ 	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_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+similarity index 67%
+copy from vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
+copy to vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+index 32653e53..fe2b689b 100644
+--- a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go
+@@ -1,7 +1,7 @@
+-// mksysnum_openbsd.pl
+-// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
++// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build arm,openbsd
++// +build arm64,openbsd
+ 
+ package unix
+ 
+@@ -9,35 +9,35 @@ 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_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_GETENTROPY     = 7   // { int sys_getentropy(void *buf, size_t nbyte); }
+-	SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, \
++	SYS___TFORK        = 8   // { int sys___tfork(const struct __tfork *param, size_t psize); }
+ 	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_WAIT4          = 11  // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); }
+ 	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_MKNOD          = 14  // { int sys_mknod(const char *path, mode_t mode, dev_t dev); }
+ 	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_CHOWN          = 16  // { int sys_chown(const char *path, uid_t uid, gid_t gid); }
+ 	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_GETRUSAGE      = 19  // { int sys_getrusage(int who, struct rusage *rusage); }
+ 	SYS_GETPID         = 20  // { pid_t sys_getpid(void); }
+-	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, \
++	SYS_MOUNT          = 21  // { int sys_mount(const char *type, const char *path, int flags, void *data); }
+ 	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_PTRACE         = 26  // { int sys_ptrace(int req, pid_t pid, caddr_t 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 amode); }
+ 	SYS_CHFLAGS        = 34  // { int sys_chflags(const char *path, u_int flags); }
+ 	SYS_FCHFLAGS       = 35  // { int sys_fchflags(int fd, u_int flags); }
+@@ -46,77 +46,80 @@ const (
+ 	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_FSTATAT        = 42  // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); }
+ 	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_PROFIL         = 44  // { int sys_profil(caddr_t 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_SIGACTION      = 46  // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); }
+ 	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_IOCTL          = 54  // { int sys_ioctl(int fd, u_long com, ... void *data); }
+ 	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  // { ssize_t sys_readlink(const char *path, \
+-	SYS_EXECVE         = 59  // { int sys_execve(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_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+-	SYS_STATFS         = 63  // { int sys_statfs(const char *path, \
++	SYS_GETFSSTAT      = 62  // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); }
++	SYS_STATFS         = 63  // { int sys_statfs(const char *path, struct statfs *buf); }
+ 	SYS_FSTATFS        = 64  // { int sys_fstatfs(int fd, struct statfs *buf); }
+-	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, \
++	SYS_FHSTATFS       = 65  // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); }
+ 	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_GETTIMEOFDAY   = 67  // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); }
++	SYS_SETTIMEOFDAY   = 68  // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); }
++	SYS_SETITIMER      = 69  // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); }
++	SYS_GETITIMER      = 70  // { int sys_getitimer(int which, struct itimerval *itv); }
++	SYS_SELECT         = 71  // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); }
++	SYS_KEVENT         = 72  // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); }
+ 	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_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_UTIMES         = 76  // { int sys_utimes(const char *path, const struct timeval *tptr); }
++	SYS_FUTIMES        = 77  // { int sys_futimes(int fd, const struct timeval *tptr); }
++	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_SENDSYSLOG     = 83  // { int sys_sendsyslog(const void *buf, size_t nbyte); }
+-	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_FUTEX          = 83  // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); }
++	SYS_UTIMENSAT      = 84  // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); }
++	SYS_FUTIMENS       = 85  // { int sys_futimens(int fd, const struct timespec *times); }
++	SYS_KBIND          = 86  // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); }
++	SYS_CLOCK_GETTIME  = 87  // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); }
++	SYS_CLOCK_SETTIME  = 88  // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); }
++	SYS_CLOCK_GETRES   = 89  // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); }
+ 	SYS_DUP2           = 90  // { int sys_dup2(int from, int to); }
+-	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, \
++	SYS_NANOSLEEP      = 91  // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); }
+ 	SYS_FCNTL          = 92  // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+-	SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, \
+-	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, \
++	SYS_ACCEPT4        = 93  // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); }
++	SYS___THRSLEEP     = 94  // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); }
+ 	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_CONNECT        = 98  // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); }
+ 	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_PIPE2          = 101 // { int sys_pipe2(int *fdp, int flags); }
+ 	SYS_DUP3           = 102 // { int sys_dup3(int from, int to, int flags); }
+ 	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_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_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, \
+-	SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, \
+-	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
++	SYS_CHFLAGSAT      = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); }
++	SYS_PLEDGE         = 108 // { int sys_pledge(const char *promises, const char *execpromises); }
++	SYS_PPOLL          = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); }
++	SYS_PSELECT        = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); }
+ 	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_SENDSYSLOG     = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); }
++	SYS_UNVEIL         = 114 // { int sys_unveil(const char *path, const char *permissions); }
++	SYS_GETSOCKOPT     = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); }
++	SYS_THRKILL        = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); }
++	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_KILL           = 122 // { int sys_kill(int pid, int signum); }
+ 	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); }
+@@ -125,89 +128,90 @@ const (
+ 	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_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, \
++	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_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, \
++	SYS_ADJTIME        = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); }
++	SYS_GETLOGIN_R     = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); }
+ 	SYS_SETSID         = 147 // { int sys_setsid(void); }
+-	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, \
++	SYS_QUOTACTL       = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); }
+ 	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_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_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_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, \
++	SYS_SYSCTL         = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, 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_GETPGID        = 207 // { pid_t sys_getpgid(pid_t pid); }
+-	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, \
++	SYS_UTRACE         = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); }
+ 	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_MSGSND         = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); }
++	SYS_MSGRCV         = 227 // { int 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_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, \
+-	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, \
++	SYS_MINHERIT       = 250 // { int sys_minherit(void *addr, size_t len, int inherit); }
++	SYS_POLL           = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); }
+ 	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_PREADV         = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
++	SYS_PWRITEV        = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); }
+ 	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_GETRESUID      = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); }
++	SYS_SETRESUID      = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); }
++	SYS_GETRESGID      = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); }
++	SYS_SETRESGID      = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); }
++	SYS_MQUERY         = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); }
+ 	SYS_CLOSEFROM      = 287 // { int sys_closefrom(int fd); }
+-	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
++	SYS_SIGALTSTACK    = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); }
+ 	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_SEMOP          = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); }
++	SYS_FHSTAT         = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); }
++	SYS___SEMCTL       = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); }
++	SYS_SHMCTL         = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); }
++	SYS_MSGCTL         = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); }
+ 	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___THRWAKEUP    = 301 // { int sys___thrwakeup(const volatile void *ident, int n); }
+ 	SYS___THREXIT      = 302 // { void sys___threxit(pid_t *notdead); }
+-	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
++	SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); }
+ 	SYS___GETCWD       = 304 // { int sys___getcwd(char *buf, size_t len); }
+-	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, \
++	SYS_ADJFREQ        = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); }
+ 	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_FACCESSAT      = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); }
++	SYS_FCHMODAT       = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); }
++	SYS_FCHOWNAT       = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); }
++	SYS_LINKAT         = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); }
++	SYS_MKDIRAT        = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); }
++	SYS_MKFIFOAT       = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); }
++	SYS_MKNODAT        = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); }
++	SYS_OPENAT         = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); }
++	SYS_READLINKAT     = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); }
++	SYS_RENAMEAT       = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); }
++	SYS_SYMLINKAT      = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); }
++	SYS_UNLINKAT       = 325 // { int sys_unlinkat(int fd, const char *path, int flag); }
+ 	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
+deleted file mode 100644
+index c7086598..00000000
+--- a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
++++ /dev/null
+@@ -1,13 +0,0 @@
+-// 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_aix_ppc.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+new file mode 100644
+index 00000000..2c1f815e
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go
+@@ -0,0 +1,352 @@
++// cgo -godefs types_aix.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc,aix
++
++package unix
++
++const (
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
++	PathMax        = 0x3ff
++)
++
++type (
++	_C_short     int16
++	_C_int       int32
++	_C_long      int32
++	_C_long_long int64
++)
++
++type off64 int64
++type off int32
++type Mode_t uint32
++
++type Timespec struct {
++	Sec  int32
++	Nsec int32
++}
++
++type Timeval struct {
++	Sec  int32
++	Usec int32
++}
++
++type Timeval32 struct {
++	Sec  int32
++	Usec int32
++}
++
++type Timex struct{}
++
++type Time_t int32
++
++type Tms struct{}
++
++type Utimbuf struct {
++	Actime  int32
++	Modtime int32
++}
++
++type Timezone struct {
++	Minuteswest int32
++	Dsttime     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 Pid_t int32
++
++type _Gid_t uint32
++
++type dev_t uint32
++
++type Stat_t struct {
++	Dev      uint32
++	Ino      uint32
++	Mode     uint32
++	Nlink    int16
++	Flag     uint16
++	Uid      uint32
++	Gid      uint32
++	Rdev     uint32
++	Size     int32
++	Atim     Timespec
++	Mtim     Timespec
++	Ctim     Timespec
++	Blksize  int32
++	Blocks   int32
++	Vfstype  int32
++	Vfs      uint32
++	Type     uint32
++	Gen      uint32
++	Reserved [9]uint32
++}
++
++type StatxTimestamp struct{}
++
++type Statx_t struct{}
++
++type Dirent struct {
++	Offset uint32
++	Ino    uint32
++	Reclen uint16
++	Namlen uint16
++	Name   [256]uint8
++}
++
++type RawSockaddrInet4 struct {
++	Len    uint8
++	Family uint8
++	Port   uint16
++	Addr   [4]byte /* in_addr */
++	Zero   [8]uint8
++}
++
++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   [1023]uint8
++}
++
++type RawSockaddrDatalink struct {
++	Len    uint8
++	Family uint8
++	Index  uint16
++	Type   uint8
++	Nlen   uint8
++	Alen   uint8
++	Slen   uint8
++	Data   [120]uint8
++}
++
++type RawSockaddr struct {
++	Len    uint8
++	Family uint8
++	Data   [14]uint8
++}
++
++type RawSockaddrAny struct {
++	Addr RawSockaddr
++	Pad  [1012]uint8
++}
++
++type _Socklen uint32
++
++type Cmsghdr struct {
++	Len   uint32
++	Level int32
++	Type  int32
++}
++
++type ICMPv6Filter struct {
++	Filt [8]uint32
++}
++
++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 IPv6MTUInfo struct {
++	Addr RawSockaddrInet6
++	Mtu  uint32
++}
++
++type Linger struct {
++	Onoff  int32
++	Linger int32
++}
++
++type Msghdr struct {
++	Name       *byte
++	Namelen    uint32
++	Iov        *Iovec
++	Iovlen     int32
++	Control    *byte
++	Controllen uint32
++	Flags      int32
++}
++
++const (
++	SizeofSockaddrInet4    = 0x10
++	SizeofSockaddrInet6    = 0x1c
++	SizeofSockaddrAny      = 0x404
++	SizeofSockaddrUnix     = 0x401
++	SizeofSockaddrDatalink = 0x80
++	SizeofLinger           = 0x8
++	SizeofIPMreq           = 0x8
++	SizeofIPv6Mreq         = 0x14
++	SizeofIPv6MTUInfo      = 0x20
++	SizeofMsghdr           = 0x1c
++	SizeofCmsghdr          = 0xc
++	SizeofICMPv6Filter     = 0x20
++)
++
++const (
++	SizeofIfMsghdr = 0x10
++)
++
++type IfMsgHdr struct {
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	Addrlen uint8
++	_       [1]byte
++}
++
++type FdSet struct {
++	Bits [2048]int32
++}
++
++type Utsname struct {
++	Sysname  [32]byte
++	Nodename [32]byte
++	Release  [32]byte
++	Version  [32]byte
++	Machine  [32]byte
++}
++
++type Ustat_t struct{}
++
++type Sigset_t struct {
++	Losigs uint32
++	Hisigs uint32
++}
++
++const (
++	AT_FDCWD            = -0x2
++	AT_REMOVEDIR        = 0x1
++	AT_SYMLINK_NOFOLLOW = 0x1
++)
++
++type Termios struct {
++	Iflag uint32
++	Oflag uint32
++	Cflag uint32
++	Lflag uint32
++	Cc    [16]uint8
++}
++
++type Termio struct {
++	Iflag uint16
++	Oflag uint16
++	Cflag uint16
++	Lflag uint16
++	Line  uint8
++	Cc    [8]uint8
++	_     [1]byte
++}
++
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++type PollFd struct {
++	Fd      int32
++	Events  uint16
++	Revents uint16
++}
++
++const (
++	POLLERR    = 0x4000
++	POLLHUP    = 0x2000
++	POLLIN     = 0x1
++	POLLNVAL   = 0x8000
++	POLLOUT    = 0x2
++	POLLPRI    = 0x4
++	POLLRDBAND = 0x20
++	POLLRDNORM = 0x10
++	POLLWRBAND = 0x40
++	POLLWRNORM = 0x2
++)
++
++type Flock_t struct {
++	Type   int16
++	Whence int16
++	Sysid  uint32
++	Pid    int32
++	Vfs    int32
++	Start  int64
++	Len    int64
++}
++
++type Fsid_t struct {
++	Val [2]uint32
++}
++type Fsid64_t struct {
++	Val [2]uint64
++}
++
++type Statfs_t struct {
++	Version   int32
++	Type      int32
++	Bsize     uint32
++	Blocks    uint32
++	Bfree     uint32
++	Bavail    uint32
++	Files     uint32
++	Ffree     uint32
++	Fsid      Fsid_t
++	Vfstype   int32
++	Fsize     uint32
++	Vfsnumber int32
++	Vfsoff    int32
++	Vfslen    int32
++	Vfsvers   int32
++	Fname     [32]uint8
++	Fpack     [32]uint8
++	Name_max  int32
++}
++
++const RNDGETENTCNT = 0x80045200
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+new file mode 100644
+index 00000000..b4a069ec
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go
+@@ -0,0 +1,356 @@
++// cgo -godefs types_aix.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build ppc64,aix
++
++package unix
++
++const (
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
++	PathMax        = 0x3ff
++)
++
++type (
++	_C_short     int16
++	_C_int       int32
++	_C_long      int64
++	_C_long_long int64
++)
++
++type off64 int64
++type off int64
++type Mode_t uint32
++
++type Timespec struct {
++	Sec  int64
++	Nsec int64
++}
++
++type Timeval struct {
++	Sec  int64
++	Usec int32
++	_    [4]byte
++}
++
++type Timeval32 struct {
++	Sec  int32
++	Usec int32
++}
++
++type Timex struct{}
++
++type Time_t int64
++
++type Tms struct{}
++
++type Utimbuf struct {
++	Actime  int64
++	Modtime int64
++}
++
++type Timezone struct {
++	Minuteswest int32
++	Dsttime     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 Pid_t int32
++
++type _Gid_t uint32
++
++type dev_t uint64
++
++type Stat_t struct {
++	Dev      uint64
++	Ino      uint64
++	Mode     uint32
++	Nlink    int16
++	Flag     uint16
++	Uid      uint32
++	Gid      uint32
++	Rdev     uint64
++	Ssize    int32
++	Atim     Timespec
++	Mtim     Timespec
++	Ctim     Timespec
++	Blksize  int64
++	Blocks   int64
++	Vfstype  int32
++	Vfs      uint32
++	Type     uint32
++	Gen      uint32
++	Reserved [9]uint32
++	Padto_ll uint32
++	Size     int64
++}
++
++type StatxTimestamp struct{}
++
++type Statx_t struct{}
++
++type Dirent struct {
++	Offset uint64
++	Ino    uint64
++	Reclen uint16
++	Namlen uint16
++	Name   [256]uint8
++	_      [4]byte
++}
++
++type RawSockaddrInet4 struct {
++	Len    uint8
++	Family uint8
++	Port   uint16
++	Addr   [4]byte /* in_addr */
++	Zero   [8]uint8
++}
++
++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   [1023]uint8
++}
++
++type RawSockaddrDatalink struct {
++	Len    uint8
++	Family uint8
++	Index  uint16
++	Type   uint8
++	Nlen   uint8
++	Alen   uint8
++	Slen   uint8
++	Data   [120]uint8
++}
++
++type RawSockaddr struct {
++	Len    uint8
++	Family uint8
++	Data   [14]uint8
++}
++
++type RawSockaddrAny struct {
++	Addr RawSockaddr
++	Pad  [1012]uint8
++}
++
++type _Socklen uint32
++
++type Cmsghdr struct {
++	Len   uint32
++	Level int32
++	Type  int32
++}
++
++type ICMPv6Filter struct {
++	Filt [8]uint32
++}
++
++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 IPv6MTUInfo struct {
++	Addr RawSockaddrInet6
++	Mtu  uint32
++}
++
++type Linger struct {
++	Onoff  int32
++	Linger int32
++}
++
++type Msghdr struct {
++	Name       *byte
++	Namelen    uint32
++	Iov        *Iovec
++	Iovlen     int32
++	Control    *byte
++	Controllen uint32
++	Flags      int32
++}
++
++const (
++	SizeofSockaddrInet4    = 0x10
++	SizeofSockaddrInet6    = 0x1c
++	SizeofSockaddrAny      = 0x404
++	SizeofSockaddrUnix     = 0x401
++	SizeofSockaddrDatalink = 0x80
++	SizeofLinger           = 0x8
++	SizeofIPMreq           = 0x8
++	SizeofIPv6Mreq         = 0x14
++	SizeofIPv6MTUInfo      = 0x20
++	SizeofMsghdr           = 0x30
++	SizeofCmsghdr          = 0xc
++	SizeofICMPv6Filter     = 0x20
++)
++
++const (
++	SizeofIfMsghdr = 0x10
++)
++
++type IfMsgHdr struct {
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	Addrlen uint8
++	_       [1]byte
++}
++
++type FdSet struct {
++	Bits [1024]int64
++}
++
++type Utsname struct {
++	Sysname  [32]byte
++	Nodename [32]byte
++	Release  [32]byte
++	Version  [32]byte
++	Machine  [32]byte
++}
++
++type Ustat_t struct{}
++
++type Sigset_t struct {
++	Set [4]uint64
++}
++
++const (
++	AT_FDCWD            = -0x2
++	AT_REMOVEDIR        = 0x1
++	AT_SYMLINK_NOFOLLOW = 0x1
++)
++
++type Termios struct {
++	Iflag uint32
++	Oflag uint32
++	Cflag uint32
++	Lflag uint32
++	Cc    [16]uint8
++}
++
++type Termio struct {
++	Iflag uint16
++	Oflag uint16
++	Cflag uint16
++	Lflag uint16
++	Line  uint8
++	Cc    [8]uint8
++	_     [1]byte
++}
++
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++type PollFd struct {
++	Fd      int32
++	Events  uint16
++	Revents uint16
++}
++
++const (
++	POLLERR    = 0x4000
++	POLLHUP    = 0x2000
++	POLLIN     = 0x1
++	POLLNVAL   = 0x8000
++	POLLOUT    = 0x2
++	POLLPRI    = 0x4
++	POLLRDBAND = 0x20
++	POLLRDNORM = 0x10
++	POLLWRBAND = 0x40
++	POLLWRNORM = 0x2
++)
++
++type Flock_t struct {
++	Type   int16
++	Whence int16
++	Sysid  uint32
++	Pid    int32
++	Vfs    int32
++	Start  int64
++	Len    int64
++}
++
++type Fsid_t struct {
++	Val [2]uint32
++}
++type Fsid64_t struct {
++	Val [2]uint64
++}
++
++type Statfs_t struct {
++	Version   int32
++	Type      int32
++	Bsize     uint64
++	Blocks    uint64
++	Bfree     uint64
++	Bavail    uint64
++	Files     uint64
++	Ffree     uint64
++	Fsid      Fsid64_t
++	Vfstype   int32
++	Fsize     uint64
++	Vfsnumber int32
++	Vfsoff    int32
++	Vfslen    int32
++	Vfsvers   int32
++	Fname     [32]uint8
++	Fpack     [32]uint8
++	Name_max  int32
++	_         [4]byte
++}
++
++const RNDGETENTCNT = 0x80045200
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
+index e61d78a5..9f47b87c 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -59,24 +59,24 @@ type Rlimit struct {
+ 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
++	Dev     int32
++	Mode    uint16
++	Nlink   uint16
++	Ino     uint64
++	Uid     uint32
++	Gid     uint32
++	Rdev    int32
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Qspare  [2]int64
+ }
+ 
+ type Statfs_t struct {
+@@ -136,13 +136,13 @@ type Fsid struct {
+ }
+ 
+ type Dirent struct {
+-	Ino       uint64
+-	Seekoff   uint64
+-	Reclen    uint16
+-	Namlen    uint16
+-	Type      uint8
+-	Name      [1024]int8
+-	Pad_cgo_0 [3]byte
++	Ino     uint64
++	Seekoff uint64
++	Reclen  uint16
++	Namlen  uint16
++	Type    uint8
++	Name    [1024]int8
++	_       [3]byte
+ }
+ 
+ type RawSockaddrInet4 struct {
+@@ -295,14 +295,14 @@ const (
+ )
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type IfData struct {
+@@ -338,51 +338,51 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
+ }
+ 
+ type IfmaMsghdr2 struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Refcount  int32
++	Msglen   uint16
++	Version  uint8
++	Type     uint8
++	Addrs    int32
++	Flags    int32
++	Index    uint16
++	_        [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Use     int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -430,11 +430,11 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [2]byte
+ }
+ 
+ type Termios struct {
+@@ -460,3 +460,40 @@ const (
+ 	AT_SYMLINK_FOLLOW   = 0x40
+ 	AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+index 2619155f..966798a8 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -26,9 +26,9 @@ type Timespec struct {
+ }
+ 
+ type Timeval struct {
+-	Sec       int64
+-	Usec      int32
+-	Pad_cgo_0 [4]byte
++	Sec  int64
++	Usec int32
++	_    [4]byte
+ }
+ 
+ type Timeval32 struct {
+@@ -63,25 +63,25 @@ type Rlimit struct {
+ 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
++	Dev     int32
++	Mode    uint16
++	Nlink   uint16
++	Ino     uint64
++	Uid     uint32
++	Gid     uint32
++	Rdev    int32
++	_       [4]byte
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Qspare  [2]int64
+ }
+ 
+ type Statfs_t struct {
+@@ -120,9 +120,9 @@ type Fstore_t struct {
+ }
+ 
+ type Radvisory_t struct {
+-	Offset    int64
+-	Count     int32
+-	Pad_cgo_0 [4]byte
++	Offset int64
++	Count  int32
++	_      [4]byte
+ }
+ 
+ type Fbootstraptransfer_t struct {
+@@ -132,9 +132,9 @@ type Fbootstraptransfer_t struct {
+ }
+ 
+ type Log2phys_t struct {
+-	Flags     uint32
+-	Pad_cgo_0 [8]byte
+-	Pad_cgo_1 [8]byte
++	Flags uint32
++	_     [8]byte
++	_     [8]byte
+ }
+ 
+ type Fsid struct {
+@@ -142,13 +142,13 @@ type Fsid struct {
+ }
+ 
+ type Dirent struct {
+-	Ino       uint64
+-	Seekoff   uint64
+-	Reclen    uint16
+-	Namlen    uint16
+-	Type      uint8
+-	Name      [1024]int8
+-	Pad_cgo_0 [3]byte
++	Ino     uint64
++	Seekoff uint64
++	Reclen  uint16
++	Namlen  uint16
++	Type    uint8
++	Name    [1024]int8
++	_       [3]byte
+ }
+ 
+ type RawSockaddrInet4 struct {
+@@ -221,10 +221,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+-	Pad_cgo_0  [4]byte
++	_          [4]byte
+ 	Iov        *Iovec
+ 	Iovlen     int32
+-	Pad_cgo_1  [4]byte
++	_          [4]byte
+ 	Control    *byte
+ 	Controllen uint32
+ 	Flags      int32
+@@ -303,14 +303,14 @@ const (
+ )
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type IfData struct {
+@@ -346,51 +346,51 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
+ }
+ 
+ type IfmaMsghdr2 struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Refcount  int32
++	Msglen   uint16
++	Version  uint8
++	Type     uint8
++	Addrs    int32
++	Flags    int32
++	Index    uint16
++	_        [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Use     int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -426,9 +426,9 @@ type BpfStat struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	_     [4]byte
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -439,22 +439,22 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval32
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  Timeval32
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [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
++	Iflag  uint64
++	Oflag  uint64
++	Cflag  uint64
++	Lflag  uint64
++	Cc     [20]uint8
++	_      [4]byte
++	Ispeed uint64
++	Ospeed uint64
+ }
+ 
+ type Winsize struct {
+@@ -470,3 +470,40 @@ const (
+ 	AT_SYMLINK_FOLLOW   = 0x40
+ 	AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
+index 4dca0d4d..4fe4c9cd 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
+@@ -7,11 +7,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -60,24 +60,24 @@ type Rlimit struct {
+ 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
++	Dev     int32
++	Mode    uint16
++	Nlink   uint16
++	Ino     uint64
++	Uid     uint32
++	Gid     uint32
++	Rdev    int32
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Qspare  [2]int64
+ }
+ 
+ type Statfs_t struct {
+@@ -137,13 +137,13 @@ type Fsid struct {
+ }
+ 
+ type Dirent struct {
+-	Ino       uint64
+-	Seekoff   uint64
+-	Reclen    uint16
+-	Namlen    uint16
+-	Type      uint8
+-	Name      [1024]int8
+-	Pad_cgo_0 [3]byte
++	Ino     uint64
++	Seekoff uint64
++	Reclen  uint16
++	Namlen  uint16
++	Type    uint8
++	Name    [1024]int8
++	_       [3]byte
+ }
+ 
+ type RawSockaddrInet4 struct {
+@@ -296,14 +296,14 @@ const (
+ )
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type IfData struct {
+@@ -339,51 +339,51 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
+ }
+ 
+ type IfmaMsghdr2 struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Refcount  int32
++	Msglen   uint16
++	Version  uint8
++	Type     uint8
++	Addrs    int32
++	Flags    int32
++	Index    uint16
++	_        [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Use     int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -431,11 +431,11 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [2]byte
+ }
+ 
+ type Termios struct {
+@@ -461,3 +461,40 @@ const (
+ 	AT_SYMLINK_FOLLOW   = 0x40
+ 	AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
+index f2881fd1..21999e4b 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
+@@ -1,15 +1,16 @@
++// cgo -godefs types_darwin.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
+ // +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
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -25,9 +26,9 @@ type Timespec struct {
+ }
+ 
+ type Timeval struct {
+-	Sec       int64
+-	Usec      int32
+-	Pad_cgo_0 [4]byte
++	Sec  int64
++	Usec int32
++	_    [4]byte
+ }
+ 
+ type Timeval32 struct {
+@@ -62,25 +63,25 @@ type Rlimit struct {
+ 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
++	Dev     int32
++	Mode    uint16
++	Nlink   uint16
++	Ino     uint64
++	Uid     uint32
++	Gid     uint32
++	Rdev    int32
++	_       [4]byte
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Qspare  [2]int64
+ }
+ 
+ type Statfs_t struct {
+@@ -119,9 +120,9 @@ type Fstore_t struct {
+ }
+ 
+ type Radvisory_t struct {
+-	Offset    int64
+-	Count     int32
+-	Pad_cgo_0 [4]byte
++	Offset int64
++	Count  int32
++	_      [4]byte
+ }
+ 
+ type Fbootstraptransfer_t struct {
+@@ -131,9 +132,9 @@ type Fbootstraptransfer_t struct {
+ }
+ 
+ type Log2phys_t struct {
+-	Flags     uint32
+-	Pad_cgo_0 [8]byte
+-	Pad_cgo_1 [8]byte
++	Flags uint32
++	_     [8]byte
++	_     [8]byte
+ }
+ 
+ type Fsid struct {
+@@ -141,13 +142,13 @@ type Fsid struct {
+ }
+ 
+ type Dirent struct {
+-	Ino       uint64
+-	Seekoff   uint64
+-	Reclen    uint16
+-	Namlen    uint16
+-	Type      uint8
+-	Name      [1024]int8
+-	Pad_cgo_0 [3]byte
++	Ino     uint64
++	Seekoff uint64
++	Reclen  uint16
++	Namlen  uint16
++	Type    uint8
++	Name    [1024]int8
++	_       [3]byte
+ }
+ 
+ type RawSockaddrInet4 struct {
+@@ -220,10 +221,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+-	Pad_cgo_0  [4]byte
++	_          [4]byte
+ 	Iov        *Iovec
+ 	Iovlen     int32
+-	Pad_cgo_1  [4]byte
++	_          [4]byte
+ 	Control    *byte
+ 	Controllen uint32
+ 	Flags      int32
+@@ -302,14 +303,14 @@ const (
+ )
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type IfData struct {
+@@ -345,51 +346,51 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
+ }
+ 
+ type IfmaMsghdr2 struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Refcount  int32
++	Msglen   uint16
++	Version  uint8
++	Type     uint8
++	Addrs    int32
++	Flags    int32
++	Index    uint16
++	_        [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Use     int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -425,9 +426,9 @@ type BpfStat struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	_     [4]byte
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -438,22 +439,22 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval32
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  Timeval32
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [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
++	Iflag  uint64
++	Oflag  uint64
++	Cflag  uint64
++	Lflag  uint64
++	Cc     [20]uint8
++	_      [4]byte
++	Ispeed uint64
++	Ospeed uint64
+ }
+ 
+ type Winsize struct {
+@@ -469,3 +470,40 @@ const (
+ 	AT_SYMLINK_FOLLOW   = 0x40
+ 	AT_SYMLINK_NOFOLLOW = 0x20
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+index 67c6bf88..71ea1d6d 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -56,43 +56,26 @@ type Rlimit struct {
+ 
+ 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
++	Ino     uint64
++	Nlink   uint32
++	Dev     uint32
++	Mode    uint16
++	_1      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 {
+@@ -108,7 +91,7 @@ type Statfs_t struct {
+ 	Owner       uint32
+ 	Type        int32
+ 	Flags       int32
+-	Pad_cgo_0   [4]byte
++	_           [4]byte
+ 	Syncwrites  int64
+ 	Asyncwrites int64
+ 	Fstypename  [16]int8
+@@ -118,7 +101,7 @@ type Statfs_t struct {
+ 	Spares1     int16
+ 	Mntfromname [80]int8
+ 	Spares2     int16
+-	Pad_cgo_1   [4]byte
++	_           [4]byte
+ 	Spare       [2]int64
+ }
+ 
+@@ -143,6 +126,10 @@ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -215,10 +202,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+-	Pad_cgo_0  [4]byte
++	_          [4]byte
+ 	Iov        *Iovec
+ 	Iovlen     int32
+-	Pad_cgo_1  [4]byte
++	_          [4]byte
+ 	Control    *byte
+ 	Controllen uint32
+ 	Flags      int32
+@@ -290,14 +277,14 @@ const (
+ )
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type IfData struct {
+@@ -307,7 +294,7 @@ type IfData struct {
+ 	Hdrlen     uint8
+ 	Recvquota  uint8
+ 	Xmitquota  uint8
+-	Pad_cgo_0  [2]byte
++	_          [2]byte
+ 	Mtu        uint64
+ 	Metric     uint64
+ 	Link_state uint64
+@@ -329,24 +316,24 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
+ }
+ 
+ type IfAnnounceMsghdr struct {
+@@ -359,19 +346,19 @@ type IfAnnounceMsghdr struct {
+ }
+ 
+ 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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Use     int32
++	Inits   uint64
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -387,7 +374,7 @@ type RtMetrics struct {
+ 	Hopcount  uint64
+ 	Mssopt    uint16
+ 	Pad       uint16
+-	Pad_cgo_0 [4]byte
++	_         [4]byte
+ 	Msl       uint64
+ 	Iwmaxsegs uint64
+ 	Iwcapsegs uint64
+@@ -412,9 +399,9 @@ type BpfStat struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	_     [4]byte
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -425,11 +412,11 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [6]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [6]byte
+ }
+ 
+ type Termios struct {
+@@ -442,7 +429,51 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
+ const (
+ 	AT_FDCWD            = 0xfffafdcd
+ 	AT_SYMLINK_NOFOLLOW = 0x1
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Utsname struct {
++	Sysname  [32]byte
++	Nodename [32]byte
++	Release  [32]byte
++	Version  [32]byte
++	Machine  [32]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+index 5b28bcbb..2a3ec615 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -57,41 +57,55 @@ type Rlimit struct {
+ 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
++	_statfsVersion = 0x20140518
++	_dirblksiz     = 0x400
+ )
+ 
+ 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       int32
+-	Flags         uint32
+-	Gen           uint32
+-	Lspare        int32
+-	Birthtimespec Timespec
+-	Pad_cgo_0     [8]byte
++	Dev     uint64
++	Ino     uint64
++	Nlink   uint64
++	Mode    uint16
++	_0      int16
++	Uid     uint32
++	Gid     uint32
++	_1      int32
++	Rdev    uint64
++	_       int32
++	Atim    Timespec
++	_       int32
++	Mtim    Timespec
++	_       int32
++	Ctim    Timespec
++	_       int32
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint64
++	Spare   [10]uint64
++}
++
++type stat_freebsd11_t struct {
++	Dev     uint32
++	Ino     uint32
++	Mode    uint16
++	Nlink   uint16
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint32
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Btim    Timespec
++	_       [8]byte
+ }
+ 
+ type Statfs_t struct {
+@@ -114,9 +128,34 @@ type Statfs_t struct {
+ 	Owner       uint32
+ 	Fsid        Fsid
+ 	Charspare   [80]int8
+-	Fstypename  [16]int8
+-	Mntfromname [88]int8
+-	Mntonname   [88]int8
++	Fstypename  [16]byte
++	Mntfromname [1024]byte
++	Mntonname   [1024]byte
++}
++
++type statfs_freebsd11_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]byte
++	Mntfromname [88]byte
++	Mntonname   [88]byte
+ }
+ 
+ type Flock_t struct {
+@@ -129,6 +168,17 @@ type Flock_t struct {
+ }
+ 
+ type Dirent struct {
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Pad0   uint8
++	Namlen uint16
++	Pad1   uint16
++	Name   [256]int8
++}
++
++type dirent_freebsd11 struct {
+ 	Fileno uint32
+ 	Reclen uint16
+ 	Type   uint8
+@@ -140,6 +190,10 @@ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ const (
+ 	FADV_NORMAL     = 0x0
+ 	FADV_RANDOM     = 0x1
+@@ -270,11 +324,108 @@ const (
+ )
+ 
+ const (
+-	PTRACE_TRACEME = 0x0
+-	PTRACE_CONT    = 0x7
+-	PTRACE_KILL    = 0x8
++	PTRACE_ATTACH     = 0xa
++	PTRACE_CONT       = 0x7
++	PTRACE_DETACH     = 0xb
++	PTRACE_GETFPREGS  = 0x23
++	PTRACE_GETFSBASE  = 0x47
++	PTRACE_GETLWPLIST = 0xf
++	PTRACE_GETNUMLWPS = 0xe
++	PTRACE_GETREGS    = 0x21
++	PTRACE_GETXSTATE  = 0x45
++	PTRACE_IO         = 0xc
++	PTRACE_KILL       = 0x8
++	PTRACE_LWPEVENTS  = 0x18
++	PTRACE_LWPINFO    = 0xd
++	PTRACE_SETFPREGS  = 0x24
++	PTRACE_SETREGS    = 0x22
++	PTRACE_SINGLESTEP = 0x9
++	PTRACE_TRACEME    = 0x0
++)
++
++const (
++	PIOD_READ_D  = 0x1
++	PIOD_WRITE_D = 0x2
++	PIOD_READ_I  = 0x3
++	PIOD_WRITE_I = 0x4
++)
++
++const (
++	PL_FLAG_BORN   = 0x100
++	PL_FLAG_EXITED = 0x200
++	PL_FLAG_SI     = 0x20
++)
++
++const (
++	TRAP_BRKPT = 0x1
++	TRAP_TRACE = 0x2
+ )
+ 
++type PtraceLwpInfoStruct struct {
++	Lwpid        int32
++	Event        int32
++	Flags        int32
++	Sigmask      Sigset_t
++	Siglist      Sigset_t
++	Siginfo      __Siginfo
++	Tdname       [20]int8
++	Child_pid    int32
++	Syscall_code uint32
++	Syscall_narg uint32
++}
++
++type __Siginfo struct {
++	Signo  int32
++	Errno  int32
++	Code   int32
++	Pid    int32
++	Uid    uint32
++	Status int32
++	Addr   *byte
++	Value  [4]byte
++	_      [32]byte
++}
++
++type Sigset_t struct {
++	Val [4]uint32
++}
++
++type Reg struct {
++	Fs     uint32
++	Es     uint32
++	Ds     uint32
++	Edi    uint32
++	Esi    uint32
++	Ebp    uint32
++	Isp    uint32
++	Ebx    uint32
++	Edx    uint32
++	Ecx    uint32
++	Eax    uint32
++	Trapno uint32
++	Err    uint32
++	Eip    uint32
++	Cs     uint32
++	Eflags uint32
++	Esp    uint32
++	Ss     uint32
++	Gs     uint32
++}
++
++type FpReg struct {
++	Env   [7]uint32
++	Acc   [8][10]uint8
++	Ex_sw uint32
++	Pad   [64]uint8
++}
++
++type PtraceIoDesc struct {
++	Op   int32
++	Offs *byte
++	Addr *byte
++	Len  uint32
++}
++
+ type Kevent_t struct {
+ 	Ident  uint32
+ 	Filter int16
+@@ -285,7 +436,7 @@ type Kevent_t struct {
+ }
+ 
+ type FdSet struct {
+-	X__fds_bits [32]uint32
++	Bits [32]uint32
+ }
+ 
+ const (
+@@ -301,53 +452,52 @@ const (
+ )
+ 
+ type ifMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      ifData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
++	Data    ifData
+ }
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	Data    IfData
+ }
+ 
+ type ifData struct {
+-	Type              uint8
+-	Physical          uint8
+-	Addrlen           uint8
+-	Hdrlen            uint8
+-	Link_state        uint8
+-	Vhid              uint8
+-	Datalen           uint16
+-	Mtu               uint32
+-	Metric            uint32
+-	Baudrate          uint64
+-	Ipackets          uint64
+-	Ierrors           uint64
+-	Opackets          uint64
+-	Oerrors           uint64
+-	Collisions        uint64
+-	Ibytes            uint64
+-	Obytes            uint64
+-	Imcasts           uint64
+-	Omcasts           uint64
+-	Iqdrops           uint64
+-	Oqdrops           uint64
+-	Noproto           uint64
+-	Hwassist          uint64
+-	X__ifi_epoch      [8]byte
+-	X__ifi_lastchange [16]byte
++	Type       uint8
++	Physical   uint8
++	Addrlen    uint8
++	Hdrlen     uint8
++	Link_state uint8
++	Vhid       uint8
++	Datalen    uint16
++	Mtu        uint32
++	Metric     uint32
++	Baudrate   uint64
++	Ipackets   uint64
++	Ierrors    uint64
++	Opackets   uint64
++	Oerrors    uint64
++	Collisions uint64
++	Ibytes     uint64
++	Obytes     uint64
++	Imcasts    uint64
++	Omcasts    uint64
++	Iqdrops    uint64
++	Oqdrops    uint64
++	Noproto    uint64
++	Hwassist   uint64
++	_          [8]byte
++	_          [16]byte
+ }
+ 
+ type IfData struct {
+@@ -379,24 +529,24 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
+ }
+ 
+ type IfAnnounceMsghdr struct {
+@@ -409,19 +559,19 @@ type IfAnnounceMsghdr struct {
+ }
+ 
+ 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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       uint16
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Fmask   int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -478,18 +628,18 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [2]byte
+ }
+ 
+ type BpfZbufHeader struct {
+ 	Kernel_gen uint32
+ 	Kernel_len uint32
+ 	User_gen   uint32
+-	X_bzh_pad  [5]uint32
++	_          [5]uint32
+ }
+ 
+ type Termios struct {
+@@ -516,6 +666,44 @@ const (
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR      = 0x8
++	POLLHUP      = 0x10
++	POLLIN       = 0x1
++	POLLINIGNEOF = 0x2000
++	POLLNVAL     = 0x20
++	POLLOUT      = 0x4
++	POLLPRI      = 0x2
++	POLLRDBAND   = 0x80
++	POLLRDNORM   = 0x40
++	POLLWRBAND   = 0x100
++	POLLWRNORM   = 0x4
++)
++
+ type CapRights struct {
+ 	Rights [2]uint64
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz     int32
++	Tick   int32
++	Spare  int32
++	Stathz int32
++	Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+index c65d89e4..e11e9549 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -57,40 +57,50 @@ type Rlimit struct {
+ 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
++	_statfsVersion = 0x20140518
++	_dirblksiz     = 0x400
+ )
+ 
+ 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       int32
+-	Flags         uint32
+-	Gen           uint32
+-	Lspare        int32
+-	Birthtimespec Timespec
++	Dev     uint64
++	Ino     uint64
++	Nlink   uint64
++	Mode    uint16
++	_0      int16
++	Uid     uint32
++	Gid     uint32
++	_1      int32
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint64
++	Spare   [10]uint64
++}
++
++type stat_freebsd11_t struct {
++	Dev     uint32
++	Ino     uint32
++	Mode    uint16
++	Nlink   uint16
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint32
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Btim    Timespec
+ }
+ 
+ type Statfs_t struct {
+@@ -113,22 +123,58 @@ type Statfs_t struct {
+ 	Owner       uint32
+ 	Fsid        Fsid
+ 	Charspare   [80]int8
+-	Fstypename  [16]int8
+-	Mntfromname [88]int8
+-	Mntonname   [88]int8
++	Fstypename  [16]byte
++	Mntfromname [1024]byte
++	Mntonname   [1024]byte
++}
++
++type statfs_freebsd11_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]byte
++	Mntfromname [88]byte
++	Mntonname   [88]byte
+ }
+ 
+ type Flock_t struct {
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Type      int16
+-	Whence    int16
+-	Sysid     int32
+-	Pad_cgo_0 [4]byte
++	Start  int64
++	Len    int64
++	Pid    int32
++	Type   int16
++	Whence int16
++	Sysid  int32
++	_      [4]byte
+ }
+ 
+ type Dirent struct {
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Pad0   uint8
++	Namlen uint16
++	Pad1   uint16
++	Name   [256]int8
++}
++
++type dirent_freebsd11 struct {
+ 	Fileno uint32
+ 	Reclen uint16
+ 	Type   uint8
+@@ -140,6 +186,10 @@ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ const (
+ 	FADV_NORMAL     = 0x0
+ 	FADV_RANDOM     = 0x1
+@@ -225,10 +275,8 @@ type IPv6Mreq struct {
+ 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
+@@ -272,11 +320,115 @@ const (
+ )
+ 
+ const (
+-	PTRACE_TRACEME = 0x0
+-	PTRACE_CONT    = 0x7
+-	PTRACE_KILL    = 0x8
++	PTRACE_ATTACH     = 0xa
++	PTRACE_CONT       = 0x7
++	PTRACE_DETACH     = 0xb
++	PTRACE_GETFPREGS  = 0x23
++	PTRACE_GETFSBASE  = 0x47
++	PTRACE_GETLWPLIST = 0xf
++	PTRACE_GETNUMLWPS = 0xe
++	PTRACE_GETREGS    = 0x21
++	PTRACE_GETXSTATE  = 0x45
++	PTRACE_IO         = 0xc
++	PTRACE_KILL       = 0x8
++	PTRACE_LWPEVENTS  = 0x18
++	PTRACE_LWPINFO    = 0xd
++	PTRACE_SETFPREGS  = 0x24
++	PTRACE_SETREGS    = 0x22
++	PTRACE_SINGLESTEP = 0x9
++	PTRACE_TRACEME    = 0x0
++)
++
++const (
++	PIOD_READ_D  = 0x1
++	PIOD_WRITE_D = 0x2
++	PIOD_READ_I  = 0x3
++	PIOD_WRITE_I = 0x4
++)
++
++const (
++	PL_FLAG_BORN   = 0x100
++	PL_FLAG_EXITED = 0x200
++	PL_FLAG_SI     = 0x20
++)
++
++const (
++	TRAP_BRKPT = 0x1
++	TRAP_TRACE = 0x2
+ )
+ 
++type PtraceLwpInfoStruct struct {
++	Lwpid        int32
++	Event        int32
++	Flags        int32
++	Sigmask      Sigset_t
++	Siglist      Sigset_t
++	Siginfo      __Siginfo
++	Tdname       [20]int8
++	Child_pid    int32
++	Syscall_code uint32
++	Syscall_narg uint32
++}
++
++type __Siginfo struct {
++	Signo  int32
++	Errno  int32
++	Code   int32
++	Pid    int32
++	Uid    uint32
++	Status int32
++	Addr   *byte
++	Value  [8]byte
++	_      [40]byte
++}
++
++type Sigset_t struct {
++	Val [4]uint32
++}
++
++type Reg struct {
++	R15    int64
++	R14    int64
++	R13    int64
++	R12    int64
++	R11    int64
++	R10    int64
++	R9     int64
++	R8     int64
++	Rdi    int64
++	Rsi    int64
++	Rbp    int64
++	Rbx    int64
++	Rdx    int64
++	Rcx    int64
++	Rax    int64
++	Trapno uint32
++	Fs     uint16
++	Gs     uint16
++	Err    uint32
++	Es     uint16
++	Ds     uint16
++	Rip    int64
++	Cs     int64
++	Rflags int64
++	Rsp    int64
++	Ss     int64
++}
++
++type FpReg struct {
++	Env   [4]uint64
++	Acc   [8][16]uint8
++	Xacc  [16][16]uint8
++	Spare [12]uint64
++}
++
++type PtraceIoDesc struct {
++	Op   int32
++	Offs *byte
++	Addr *byte
++	Len  uint64
++}
++
+ type Kevent_t struct {
+ 	Ident  uint64
+ 	Filter int16
+@@ -287,7 +439,7 @@ type Kevent_t struct {
+ }
+ 
+ type FdSet struct {
+-	X__fds_bits [16]uint64
++	Bits [16]uint64
+ }
+ 
+ const (
+@@ -303,53 +455,52 @@ const (
+ )
+ 
+ type ifMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      ifData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
++	Data    ifData
+ }
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	Data    IfData
+ }
+ 
+ type ifData struct {
+-	Type              uint8
+-	Physical          uint8
+-	Addrlen           uint8
+-	Hdrlen            uint8
+-	Link_state        uint8
+-	Vhid              uint8
+-	Datalen           uint16
+-	Mtu               uint32
+-	Metric            uint32
+-	Baudrate          uint64
+-	Ipackets          uint64
+-	Ierrors           uint64
+-	Opackets          uint64
+-	Oerrors           uint64
+-	Collisions        uint64
+-	Ibytes            uint64
+-	Obytes            uint64
+-	Imcasts           uint64
+-	Omcasts           uint64
+-	Iqdrops           uint64
+-	Oqdrops           uint64
+-	Noproto           uint64
+-	Hwassist          uint64
+-	X__ifi_epoch      [8]byte
+-	X__ifi_lastchange [16]byte
++	Type       uint8
++	Physical   uint8
++	Addrlen    uint8
++	Hdrlen     uint8
++	Link_state uint8
++	Vhid       uint8
++	Datalen    uint16
++	Mtu        uint32
++	Metric     uint32
++	Baudrate   uint64
++	Ipackets   uint64
++	Ierrors    uint64
++	Opackets   uint64
++	Oerrors    uint64
++	Collisions uint64
++	Ibytes     uint64
++	Obytes     uint64
++	Imcasts    uint64
++	Omcasts    uint64
++	Iqdrops    uint64
++	Oqdrops    uint64
++	Noproto    uint64
++	Hwassist   uint64
++	_          [8]byte
++	_          [16]byte
+ }
+ 
+ type IfData struct {
+@@ -381,24 +532,24 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
+ }
+ 
+ type IfAnnounceMsghdr struct {
+@@ -411,19 +562,19 @@ type IfAnnounceMsghdr struct {
+ }
+ 
+ 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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       uint16
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Fmask   int32
++	Inits   uint64
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -468,9 +619,8 @@ type BpfZbuf struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -481,18 +631,18 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [6]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [6]byte
+ }
+ 
+ type BpfZbufHeader struct {
+ 	Kernel_gen uint32
+ 	Kernel_len uint32
+ 	User_gen   uint32
+-	X_bzh_pad  [5]uint32
++	_          [5]uint32
+ }
+ 
+ type Termios struct {
+@@ -519,6 +669,44 @@ const (
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR      = 0x8
++	POLLHUP      = 0x10
++	POLLIN       = 0x1
++	POLLINIGNEOF = 0x2000
++	POLLNVAL     = 0x20
++	POLLOUT      = 0x4
++	POLLPRI      = 0x2
++	POLLRDBAND   = 0x80
++	POLLRDNORM   = 0x40
++	POLLWRBAND   = 0x100
++	POLLWRNORM   = 0x4
++)
++
+ type CapRights struct {
+ 	Rights [2]uint64
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz     int32
++	Tick   int32
++	Spare  int32
++	Stathz int32
++	Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+index 42c0a502..6f79227d 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -21,15 +21,15 @@ type (
+ )
+ 
+ type Timespec struct {
+-	Sec       int64
+-	Nsec      int32
+-	Pad_cgo_0 [4]byte
++	Sec  int64
++	Nsec int32
++	_    [4]byte
+ }
+ 
+ type Timeval struct {
+-	Sec       int64
+-	Usec      int32
+-	Pad_cgo_0 [4]byte
++	Sec  int64
++	Usec int32
++	_    [4]byte
+ }
+ 
+ type Rusage struct {
+@@ -59,43 +59,78 @@ type Rlimit struct {
+ 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
++	_statfsVersion = 0x20140518
++	_dirblksiz     = 0x400
+ )
+ 
+ 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       int32
+-	Flags         uint32
+-	Gen           uint32
+-	Lspare        int32
+-	Birthtimespec Timespec
++	Dev     uint64
++	Ino     uint64
++	Nlink   uint64
++	Mode    uint16
++	_0      int16
++	Uid     uint32
++	Gid     uint32
++	_1      int32
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint64
++	Spare   [10]uint64
++}
++
++type stat_freebsd11_t struct {
++	Dev     uint32
++	Ino     uint32
++	Mode    uint16
++	Nlink   uint16
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint32
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Btim    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 [1024]int8
++	Mntonname   [1024]int8
++}
++
++type statfs_freebsd11_t struct {
+ 	Version     uint32
+ 	Type        uint32
+ 	Flags       uint64
+@@ -121,16 +156,27 @@ type Statfs_t struct {
+ }
+ 
+ type Flock_t struct {
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Type      int16
+-	Whence    int16
+-	Sysid     int32
+-	Pad_cgo_0 [4]byte
++	Start  int64
++	Len    int64
++	Pid    int32
++	Type   int16
++	Whence int16
++	Sysid  int32
++	_      [4]byte
+ }
+ 
+ type Dirent struct {
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Pad0   uint8
++	Namlen uint16
++	Pad1   uint16
++	Name   [256]int8
++}
++
++type dirent_freebsd11 struct {
+ 	Fileno uint32
+ 	Reclen uint16
+ 	Type   uint8
+@@ -142,6 +188,10 @@ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ const (
+ 	FADV_NORMAL     = 0x0
+ 	FADV_RANDOM     = 0x1
+@@ -272,11 +322,92 @@ const (
+ )
+ 
+ const (
+-	PTRACE_TRACEME = 0x0
+-	PTRACE_CONT    = 0x7
+-	PTRACE_KILL    = 0x8
++	PTRACE_ATTACH     = 0xa
++	PTRACE_CONT       = 0x7
++	PTRACE_DETACH     = 0xb
++	PTRACE_GETFPREGS  = 0x23
++	PTRACE_GETFSBASE  = 0x47
++	PTRACE_GETLWPLIST = 0xf
++	PTRACE_GETNUMLWPS = 0xe
++	PTRACE_GETREGS    = 0x21
++	PTRACE_GETXSTATE  = 0x45
++	PTRACE_IO         = 0xc
++	PTRACE_KILL       = 0x8
++	PTRACE_LWPEVENTS  = 0x18
++	PTRACE_LWPINFO    = 0xd
++	PTRACE_SETFPREGS  = 0x24
++	PTRACE_SETREGS    = 0x22
++	PTRACE_SINGLESTEP = 0x9
++	PTRACE_TRACEME    = 0x0
++)
++
++const (
++	PIOD_READ_D  = 0x1
++	PIOD_WRITE_D = 0x2
++	PIOD_READ_I  = 0x3
++	PIOD_WRITE_I = 0x4
++)
++
++const (
++	PL_FLAG_BORN   = 0x100
++	PL_FLAG_EXITED = 0x200
++	PL_FLAG_SI     = 0x20
+ )
+ 
++const (
++	TRAP_BRKPT = 0x1
++	TRAP_TRACE = 0x2
++)
++
++type PtraceLwpInfoStruct struct {
++	Lwpid        int32
++	Event        int32
++	Flags        int32
++	Sigmask      Sigset_t
++	Siglist      Sigset_t
++	Siginfo      __Siginfo
++	Tdname       [20]int8
++	Child_pid    int32
++	Syscall_code uint32
++	Syscall_narg uint32
++}
++
++type __Siginfo struct {
++	Signo    int32
++	Errno    int32
++	Code     int32
++	Pid      int32
++	Uid      uint32
++	Status   int32
++	Addr     *byte
++	Value    [4]byte
++	X_reason [32]byte
++}
++
++type Sigset_t struct {
++	Val [4]uint32
++}
++
++type Reg struct {
++	R      [13]uint32
++	R_sp   uint32
++	R_lr   uint32
++	R_pc   uint32
++	R_cpsr uint32
++}
++
++type FpReg struct {
++	Fpr_fpsr uint32
++	Fpr      [8][3]uint32
++}
++
++type PtraceIoDesc struct {
++	Op   int32
++	Offs *byte
++	Addr *byte
++	Len  uint32
++}
++
+ type Kevent_t struct {
+ 	Ident  uint32
+ 	Filter int16
+@@ -287,7 +418,7 @@ type Kevent_t struct {
+ }
+ 
+ type FdSet struct {
+-	X__fds_bits [32]uint32
++	Bits [32]uint32
+ }
+ 
+ const (
+@@ -303,53 +434,53 @@ const (
+ )
+ 
+ type ifMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      ifData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type ifData struct {
+-	Type              uint8
+-	Physical          uint8
+-	Addrlen           uint8
+-	Hdrlen            uint8
+-	Link_state        uint8
+-	Vhid              uint8
+-	Datalen           uint16
+-	Mtu               uint32
+-	Metric            uint32
+-	Baudrate          uint64
+-	Ipackets          uint64
+-	Ierrors           uint64
+-	Opackets          uint64
+-	Oerrors           uint64
+-	Collisions        uint64
+-	Ibytes            uint64
+-	Obytes            uint64
+-	Imcasts           uint64
+-	Omcasts           uint64
+-	Iqdrops           uint64
+-	Oqdrops           uint64
+-	Noproto           uint64
+-	Hwassist          uint64
+-	X__ifi_epoch      [8]byte
+-	X__ifi_lastchange [16]byte
++	Type       uint8
++	Physical   uint8
++	Addrlen    uint8
++	Hdrlen     uint8
++	Link_state uint8
++	Vhid       uint8
++	Datalen    uint16
++	Mtu        uint32
++	Metric     uint32
++	Baudrate   uint64
++	Ipackets   uint64
++	Ierrors    uint64
++	Opackets   uint64
++	Oerrors    uint64
++	Collisions uint64
++	Ibytes     uint64
++	Obytes     uint64
++	Imcasts    uint64
++	Omcasts    uint64
++	Iqdrops    uint64
++	Oqdrops    uint64
++	Noproto    uint64
++	Hwassist   uint64
++	_          [8]byte
++	_          [16]byte
+ }
+ 
+ type IfData struct {
+@@ -376,30 +507,30 @@ type IfData struct {
+ 	Iqdrops     uint32
+ 	Noproto     uint32
+ 	Hwassist    uint32
+-	Pad_cgo_0   [4]byte
++	_           [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
+ }
+ 
+ type IfAnnounceMsghdr struct {
+@@ -412,19 +543,19 @@ type IfAnnounceMsghdr struct {
+ }
+ 
+ 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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Fmask   int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -481,18 +612,18 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [6]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [6]byte
+ }
+ 
+ type BpfZbufHeader struct {
+ 	Kernel_gen uint32
+ 	Kernel_len uint32
+ 	User_gen   uint32
+-	X_bzh_pad  [5]uint32
++	_          [5]uint32
+ }
+ 
+ type Termios struct {
+@@ -519,6 +650,44 @@ const (
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR      = 0x8
++	POLLHUP      = 0x10
++	POLLIN       = 0x1
++	POLLINIGNEOF = 0x2000
++	POLLNVAL     = 0x20
++	POLLOUT      = 0x4
++	POLLPRI      = 0x2
++	POLLRDBAND   = 0x80
++	POLLRDNORM   = 0x40
++	POLLWRBAND   = 0x100
++	POLLWRNORM   = 0x4
++)
++
+ type CapRights struct {
+ 	Rights [2]uint64
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz     int32
++	Tick   int32
++	Spare  int32
++	Stathz int32
++	Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+similarity index 54%
+copy from vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+index c65d89e4..c6fe1d09 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go
+@@ -1,16 +1,16 @@
+-// cgo -godefs types_freebsd.go | go run mkpost.go
++// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go
+ // Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build amd64,freebsd
++// +build arm64,freebsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -57,40 +57,50 @@ type Rlimit struct {
+ 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
++	_statfsVersion = 0x20140518
++	_dirblksiz     = 0x400
+ )
+ 
+ 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       int32
+-	Flags         uint32
+-	Gen           uint32
+-	Lspare        int32
+-	Birthtimespec Timespec
++	Dev     uint64
++	Ino     uint64
++	Nlink   uint64
++	Mode    uint16
++	_0      int16
++	Uid     uint32
++	Gid     uint32
++	_1      int32
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint64
++	Spare   [10]uint64
++}
++
++type stat_freebsd11_t struct {
++	Dev     uint32
++	Ino     uint32
++	Mode    uint16
++	Nlink   uint16
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint32
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize int32
++	Flags   uint32
++	Gen     uint32
++	Lspare  int32
++	Btim    Timespec
+ }
+ 
+ type Statfs_t struct {
+@@ -113,22 +123,58 @@ type Statfs_t struct {
+ 	Owner       uint32
+ 	Fsid        Fsid
+ 	Charspare   [80]int8
+-	Fstypename  [16]int8
+-	Mntfromname [88]int8
+-	Mntonname   [88]int8
++	Fstypename  [16]byte
++	Mntfromname [1024]byte
++	Mntonname   [1024]byte
++}
++
++type statfs_freebsd11_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]byte
++	Mntfromname [88]byte
++	Mntonname   [88]byte
+ }
+ 
+ type Flock_t struct {
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Type      int16
+-	Whence    int16
+-	Sysid     int32
+-	Pad_cgo_0 [4]byte
++	Start  int64
++	Len    int64
++	Pid    int32
++	Type   int16
++	Whence int16
++	Sysid  int32
++	_      [4]byte
+ }
+ 
+ type Dirent struct {
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Pad0   uint8
++	Namlen uint16
++	Pad1   uint16
++	Name   [256]int8
++}
++
++type dirent_freebsd11 struct {
+ 	Fileno uint32
+ 	Reclen uint16
+ 	Type   uint8
+@@ -140,6 +186,10 @@ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ const (
+ 	FADV_NORMAL     = 0x0
+ 	FADV_RANDOM     = 0x1
+@@ -225,10 +275,8 @@ type IPv6Mreq struct {
+ 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
+@@ -272,11 +320,93 @@ const (
+ )
+ 
+ const (
+-	PTRACE_TRACEME = 0x0
+-	PTRACE_CONT    = 0x7
+-	PTRACE_KILL    = 0x8
++	PTRACE_ATTACH     = 0xa
++	PTRACE_CONT       = 0x7
++	PTRACE_DETACH     = 0xb
++	PTRACE_GETFPREGS  = 0x23
++	PTRACE_GETLWPLIST = 0xf
++	PTRACE_GETNUMLWPS = 0xe
++	PTRACE_GETREGS    = 0x21
++	PTRACE_IO         = 0xc
++	PTRACE_KILL       = 0x8
++	PTRACE_LWPEVENTS  = 0x18
++	PTRACE_LWPINFO    = 0xd
++	PTRACE_SETFPREGS  = 0x24
++	PTRACE_SETREGS    = 0x22
++	PTRACE_SINGLESTEP = 0x9
++	PTRACE_TRACEME    = 0x0
++)
++
++const (
++	PIOD_READ_D  = 0x1
++	PIOD_WRITE_D = 0x2
++	PIOD_READ_I  = 0x3
++	PIOD_WRITE_I = 0x4
++)
++
++const (
++	PL_FLAG_BORN   = 0x100
++	PL_FLAG_EXITED = 0x200
++	PL_FLAG_SI     = 0x20
++)
++
++const (
++	TRAP_BRKPT = 0x1
++	TRAP_TRACE = 0x2
+ )
+ 
++type PtraceLwpInfoStruct struct {
++	Lwpid        int32
++	Event        int32
++	Flags        int32
++	Sigmask      Sigset_t
++	Siglist      Sigset_t
++	Siginfo      __Siginfo
++	Tdname       [20]int8
++	Child_pid    int32
++	Syscall_code uint32
++	Syscall_narg uint32
++}
++
++type __Siginfo struct {
++	Signo  int32
++	Errno  int32
++	Code   int32
++	Pid    int32
++	Uid    uint32
++	Status int32
++	Addr   *byte
++	Value  [8]byte
++	_      [40]byte
++}
++
++type Sigset_t struct {
++	Val [4]uint32
++}
++
++type Reg struct {
++	X    [30]uint64
++	Lr   uint64
++	Sp   uint64
++	Elr  uint64
++	Spsr uint32
++	_    [4]byte
++}
++
++type FpReg struct {
++	Q  [32][16]uint8
++	Sr uint32
++	Cr uint32
++	_  [8]byte
++}
++
++type PtraceIoDesc struct {
++	Op   int32
++	Offs *byte
++	Addr *byte
++	Len  uint64
++}
++
+ type Kevent_t struct {
+ 	Ident  uint64
+ 	Filter int16
+@@ -287,7 +417,7 @@ type Kevent_t struct {
+ }
+ 
+ type FdSet struct {
+-	X__fds_bits [16]uint64
++	Bits [16]uint64
+ }
+ 
+ const (
+@@ -303,53 +433,52 @@ const (
+ )
+ 
+ type ifMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      ifData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
++	Data    ifData
+ }
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	Data    IfData
+ }
+ 
+ type ifData struct {
+-	Type              uint8
+-	Physical          uint8
+-	Addrlen           uint8
+-	Hdrlen            uint8
+-	Link_state        uint8
+-	Vhid              uint8
+-	Datalen           uint16
+-	Mtu               uint32
+-	Metric            uint32
+-	Baudrate          uint64
+-	Ipackets          uint64
+-	Ierrors           uint64
+-	Opackets          uint64
+-	Oerrors           uint64
+-	Collisions        uint64
+-	Ibytes            uint64
+-	Obytes            uint64
+-	Imcasts           uint64
+-	Omcasts           uint64
+-	Iqdrops           uint64
+-	Oqdrops           uint64
+-	Noproto           uint64
+-	Hwassist          uint64
+-	X__ifi_epoch      [8]byte
+-	X__ifi_lastchange [16]byte
++	Type       uint8
++	Physical   uint8
++	Addrlen    uint8
++	Hdrlen     uint8
++	Link_state uint8
++	Vhid       uint8
++	Datalen    uint16
++	Mtu        uint32
++	Metric     uint32
++	Baudrate   uint64
++	Ipackets   uint64
++	Ierrors    uint64
++	Opackets   uint64
++	Oerrors    uint64
++	Collisions uint64
++	Ibytes     uint64
++	Obytes     uint64
++	Imcasts    uint64
++	Omcasts    uint64
++	Iqdrops    uint64
++	Oqdrops    uint64
++	Noproto    uint64
++	Hwassist   uint64
++	_          [8]byte
++	_          [16]byte
+ }
+ 
+ type IfData struct {
+@@ -381,24 +510,24 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
++	Metric  int32
+ }
+ 
+ type IfmaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       uint16
+ }
+ 
+ type IfAnnounceMsghdr struct {
+@@ -411,19 +540,19 @@ type IfAnnounceMsghdr struct {
+ }
+ 
+ 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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       uint16
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Fmask   int32
++	Inits   uint64
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -468,9 +597,8 @@ type BpfZbuf struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -481,18 +609,18 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    Timeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [6]byte
++	Tstamp  Timeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [6]byte
+ }
+ 
+ type BpfZbufHeader struct {
+ 	Kernel_gen uint32
+ 	Kernel_len uint32
+ 	User_gen   uint32
+-	X_bzh_pad  [5]uint32
++	_          [5]uint32
+ }
+ 
+ type Termios struct {
+@@ -519,6 +647,44 @@ const (
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR      = 0x8
++	POLLHUP      = 0x10
++	POLLIN       = 0x1
++	POLLINIGNEOF = 0x2000
++	POLLNVAL     = 0x20
++	POLLOUT      = 0x4
++	POLLPRI      = 0x2
++	POLLRDBAND   = 0x80
++	POLLRDNORM   = 0x40
++	POLLWRBAND   = 0x100
++	POLLWRNORM   = 0x4
++)
++
+ type CapRights struct {
+ 	Rights [2]uint64
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz     int32
++	Tick   int32
++	Spare  int32
++	Stathz int32
++	Profhz int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux.go b/vendor/golang.org/x/sys/unix/ztypes_linux.go
+new file mode 100644
+index 00000000..af5ab455
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux.go
+@@ -0,0 +1,2340 @@
++// Code generated by mkmerge.go; DO NOT EDIT.
++
++// +build linux
++
++package unix
++
++const (
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLongLong = 0x8
++	PathMax        = 0x1000
++)
++
++type (
++	_C_short int16
++	_C_int   int32
++
++	_C_long_long int64
++)
++
++const (
++	TIME_OK    = 0x0
++	TIME_INS   = 0x1
++	TIME_DEL   = 0x2
++	TIME_OOP   = 0x3
++	TIME_WAIT  = 0x4
++	TIME_ERROR = 0x5
++	TIME_BAD   = 0x5
++)
++
++type Rlimit struct {
++	Cur uint64
++	Max uint64
++}
++
++type _Gid_t uint32
++
++type StatxTimestamp struct {
++	Sec  int64
++	Nsec uint32
++	_    int32
++}
++
++type Statx_t struct {
++	Mask            uint32
++	Blksize         uint32
++	Attributes      uint64
++	Nlink           uint32
++	Uid             uint32
++	Gid             uint32
++	Mode            uint16
++	_               [1]uint16
++	Ino             uint64
++	Size            uint64
++	Blocks          uint64
++	Attributes_mask uint64
++	Atime           StatxTimestamp
++	Btime           StatxTimestamp
++	Ctime           StatxTimestamp
++	Mtime           StatxTimestamp
++	Rdev_major      uint32
++	Rdev_minor      uint32
++	Dev_major       uint32
++	Dev_minor       uint32
++	_               [14]uint64
++}
++
++type Fsid struct {
++	Val [2]int32
++}
++
++type FscryptPolicy struct {
++	Version                   uint8
++	Contents_encryption_mode  uint8
++	Filenames_encryption_mode uint8
++	Flags                     uint8
++	Master_key_descriptor     [8]uint8
++}
++
++type FscryptKey struct {
++	Mode uint32
++	Raw  [64]uint8
++	Size uint32
++}
++
++type FscryptPolicyV1 struct {
++	Version                   uint8
++	Contents_encryption_mode  uint8
++	Filenames_encryption_mode uint8
++	Flags                     uint8
++	Master_key_descriptor     [8]uint8
++}
++
++type FscryptPolicyV2 struct {
++	Version                   uint8
++	Contents_encryption_mode  uint8
++	Filenames_encryption_mode uint8
++	Flags                     uint8
++	_                         [4]uint8
++	Master_key_identifier     [16]uint8
++}
++
++type FscryptGetPolicyExArg struct {
++	Size   uint64
++	Policy [24]byte
++}
++
++type FscryptKeySpecifier struct {
++	Type uint32
++	_    uint32
++	U    [32]byte
++}
++
++type FscryptAddKeyArg struct {
++	Key_spec FscryptKeySpecifier
++	Raw_size uint32
++	Key_id   uint32
++	_        [8]uint32
++}
++
++type FscryptRemoveKeyArg struct {
++	Key_spec             FscryptKeySpecifier
++	Removal_status_flags uint32
++	_                    [5]uint32
++}
++
++type FscryptGetKeyStatusArg struct {
++	Key_spec     FscryptKeySpecifier
++	_            [6]uint32
++	Status       uint32
++	Status_flags uint32
++	User_count   uint32
++	_            [13]uint32
++}
++
++type KeyctlDHParams struct {
++	Private int32
++	Prime   int32
++	Base    int32
++}
++
++const (
++	FADV_NORMAL     = 0x0
++	FADV_RANDOM     = 0x1
++	FADV_SEQUENTIAL = 0x2
++	FADV_WILLNEED   = 0x3
++)
++
++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 RawSockaddrL2 struct {
++	Family      uint16
++	Psm         uint16
++	Bdaddr      [6]uint8
++	Cid         uint16
++	Bdaddr_type uint8
++	_           [1]byte
++}
++
++type RawSockaddrRFCOMM struct {
++	Family  uint16
++	Bdaddr  [6]uint8
++	Channel uint8
++	_       [1]byte
++}
++
++type RawSockaddrCAN struct {
++	Family  uint16
++	Ifindex int32
++	Addr    [16]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 RawSockaddrXDP struct {
++	Family         uint16
++	Flags          uint16
++	Ifindex        uint32
++	Queue_id       uint32
++	Shared_umem_fd uint32
++}
++
++type RawSockaddrPPPoX [0x1e]byte
++
++type RawSockaddrTIPC struct {
++	Family   uint16
++	Addrtype uint8
++	Scope    int8
++	Addr     [12]byte
++}
++
++type RawSockaddrL2TPIP struct {
++	Family  uint16
++	Unused  uint16
++	Addr    [4]byte /* in_addr */
++	Conn_id uint32
++	_       [4]uint8
++}
++
++type RawSockaddrL2TPIP6 struct {
++	Family   uint16
++	Unused   uint16
++	Flowinfo uint32
++	Addr     [16]byte /* in6_addr */
++	Scope_id uint32
++	Conn_id  uint32
++}
++
++type _Socklen uint32
++
++type Linger struct {
++	Onoff  int32
++	Linger int32
++}
++
++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 PacketMreq struct {
++	Ifindex int32
++	Type    uint16
++	Alen    uint16
++	Address [8]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
++	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
++}
++
++type CanFilter struct {
++	Id   uint32
++	Mask uint32
++}
++
++const (
++	SizeofSockaddrInet4     = 0x10
++	SizeofSockaddrInet6     = 0x1c
++	SizeofSockaddrAny       = 0x70
++	SizeofSockaddrUnix      = 0x6e
++	SizeofSockaddrLinklayer = 0x14
++	SizeofSockaddrNetlink   = 0xc
++	SizeofSockaddrHCI       = 0x6
++	SizeofSockaddrL2        = 0xe
++	SizeofSockaddrRFCOMM    = 0xa
++	SizeofSockaddrCAN       = 0x18
++	SizeofSockaddrALG       = 0x58
++	SizeofSockaddrVM        = 0x10
++	SizeofSockaddrXDP       = 0x10
++	SizeofSockaddrPPPoX     = 0x1e
++	SizeofSockaddrTIPC      = 0x10
++	SizeofSockaddrL2TPIP    = 0x10
++	SizeofSockaddrL2TPIP6   = 0x20
++	SizeofLinger            = 0x8
++	SizeofIPMreq            = 0x8
++	SizeofIPMreqn           = 0xc
++	SizeofIPv6Mreq          = 0x14
++	SizeofPacketMreq        = 0x10
++	SizeofInet4Pktinfo      = 0xc
++	SizeofInet6Pktinfo      = 0x14
++	SizeofIPv6MTUInfo       = 0x20
++	SizeofICMPv6Filter      = 0x20
++	SizeofUcred             = 0xc
++	SizeofTCPInfo           = 0x68
++	SizeofCanFilter         = 0x8
++)
++
++const (
++	NDA_UNSPEC              = 0x0
++	NDA_DST                 = 0x1
++	NDA_LLADDR              = 0x2
++	NDA_CACHEINFO           = 0x3
++	NDA_PROBES              = 0x4
++	NDA_VLAN                = 0x5
++	NDA_PORT                = 0x6
++	NDA_VNI                 = 0x7
++	NDA_IFINDEX             = 0x8
++	NDA_MASTER              = 0x9
++	NDA_LINK_NETNSID        = 0xa
++	NDA_SRC_VNI             = 0xb
++	NTF_USE                 = 0x1
++	NTF_SELF                = 0x2
++	NTF_MASTER              = 0x4
++	NTF_PROXY               = 0x8
++	NTF_EXT_LEARNED         = 0x10
++	NTF_OFFLOADED           = 0x20
++	NTF_ROUTER              = 0x80
++	NUD_INCOMPLETE          = 0x1
++	NUD_REACHABLE           = 0x2
++	NUD_STALE               = 0x4
++	NUD_DELAY               = 0x8
++	NUD_PROBE               = 0x10
++	NUD_FAILED              = 0x20
++	NUD_NOARP               = 0x40
++	NUD_PERMANENT           = 0x80
++	NUD_NONE                = 0x0
++	IFA_UNSPEC              = 0x0
++	IFA_ADDRESS             = 0x1
++	IFA_LOCAL               = 0x2
++	IFA_LABEL               = 0x3
++	IFA_BROADCAST           = 0x4
++	IFA_ANYCAST             = 0x5
++	IFA_CACHEINFO           = 0x6
++	IFA_MULTICAST           = 0x7
++	IFA_FLAGS               = 0x8
++	IFA_RT_PRIORITY         = 0x9
++	IFA_TARGET_NETNSID      = 0xa
++	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_NUM_VF             = 0x15
++	IFLA_VFINFO_LIST        = 0x16
++	IFLA_STATS64            = 0x17
++	IFLA_VF_PORTS           = 0x18
++	IFLA_PORT_SELF          = 0x19
++	IFLA_AF_SPEC            = 0x1a
++	IFLA_GROUP              = 0x1b
++	IFLA_NET_NS_FD          = 0x1c
++	IFLA_EXT_MASK           = 0x1d
++	IFLA_PROMISCUITY        = 0x1e
++	IFLA_NUM_TX_QUEUES      = 0x1f
++	IFLA_NUM_RX_QUEUES      = 0x20
++	IFLA_CARRIER            = 0x21
++	IFLA_PHYS_PORT_ID       = 0x22
++	IFLA_CARRIER_CHANGES    = 0x23
++	IFLA_PHYS_SWITCH_ID     = 0x24
++	IFLA_LINK_NETNSID       = 0x25
++	IFLA_PHYS_PORT_NAME     = 0x26
++	IFLA_PROTO_DOWN         = 0x27
++	IFLA_GSO_MAX_SEGS       = 0x28
++	IFLA_GSO_MAX_SIZE       = 0x29
++	IFLA_PAD                = 0x2a
++	IFLA_XDP                = 0x2b
++	IFLA_EVENT              = 0x2c
++	IFLA_NEW_NETNSID        = 0x2d
++	IFLA_IF_NETNSID         = 0x2e
++	IFLA_TARGET_NETNSID     = 0x2e
++	IFLA_CARRIER_UP_COUNT   = 0x2f
++	IFLA_CARRIER_DOWN_COUNT = 0x30
++	IFLA_NEW_IFINDEX        = 0x31
++	IFLA_MIN_MTU            = 0x32
++	IFLA_MAX_MTU            = 0x33
++	IFLA_MAX                = 0x36
++	IFLA_INFO_KIND          = 0x1
++	IFLA_INFO_DATA          = 0x2
++	IFLA_INFO_XSTATS        = 0x3
++	IFLA_INFO_SLAVE_KIND    = 0x4
++	IFLA_INFO_SLAVE_DATA    = 0x5
++	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
++	RTA_MARK                = 0x10
++	RTA_MFC_STATS           = 0x11
++	RTA_VIA                 = 0x12
++	RTA_NEWDST              = 0x13
++	RTA_PREF                = 0x14
++	RTA_ENCAP_TYPE          = 0x15
++	RTA_ENCAP               = 0x16
++	RTA_EXPIRES             = 0x17
++	RTA_PAD                 = 0x18
++	RTA_UID                 = 0x19
++	RTA_TTL_PROPAGATE       = 0x1a
++	RTA_IP_PROTO            = 0x1b
++	RTA_SPORT               = 0x1c
++	RTA_DPORT               = 0x1d
++	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
++	SizeofNlMsghdr          = 0x10
++	SizeofNlMsgerr          = 0x14
++	SizeofRtGenmsg          = 0x1
++	SizeofNlAttr            = 0x4
++	SizeofRtAttr            = 0x4
++	SizeofIfInfomsg         = 0x10
++	SizeofIfAddrmsg         = 0x8
++	SizeofIfaCacheinfo      = 0x10
++	SizeofRtMsg             = 0xc
++	SizeofRtNexthop         = 0x8
++	SizeofNdUseroptmsg      = 0x10
++	SizeofNdMsg             = 0xc
++)
++
++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 IfaCacheinfo struct {
++	Prefered uint32
++	Valid    uint32
++	Cstamp   uint32
++	Tstamp   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
++}
++
++type NdUseroptmsg struct {
++	Family    uint8
++	Pad1      uint8
++	Opts_len  uint16
++	Ifindex   int32
++	Icmp_type uint8
++	Icmp_code uint8
++	Pad2      uint16
++	Pad3      uint32
++}
++
++type NdMsg struct {
++	Family  uint8
++	Pad1    uint8
++	Pad2    uint16
++	Ifindex int32
++	State   uint16
++	Flags   uint8
++	Type    uint8
++}
++
++const (
++	SizeofSockFilter = 0x8
++)
++
++type SockFilter struct {
++	Code uint16
++	Jt   uint8
++	Jf   uint8
++	K    uint32
++}
++
++type SockFprog struct {
++	Len    uint16
++	Filter *SockFilter
++}
++
++type InotifyEvent struct {
++	Wd     int32
++	Mask   uint32
++	Cookie uint32
++	Len    uint32
++}
++
++const SizeofInotifyEvent = 0x10
++
++type Utsname struct {
++	Sysname    [65]byte
++	Nodename   [65]byte
++	Release    [65]byte
++	Version    [65]byte
++	Machine    [65]byte
++	Domainname [65]byte
++}
++
++const (
++	AT_EMPTY_PATH   = 0x1000
++	AT_FDCWD        = -0x64
++	AT_NO_AUTOMOUNT = 0x800
++	AT_REMOVEDIR    = 0x200
++
++	AT_STATX_SYNC_AS_STAT = 0x0
++	AT_STATX_FORCE_SYNC   = 0x2000
++	AT_STATX_DONT_SYNC    = 0x4000
++
++	AT_SYMLINK_FOLLOW   = 0x400
++	AT_SYMLINK_NOFOLLOW = 0x100
++
++	AT_EACCESS = 0x200
++)
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLIN   = 0x1
++	POLLPRI  = 0x2
++	POLLOUT  = 0x4
++	POLLERR  = 0x8
++	POLLHUP  = 0x10
++	POLLNVAL = 0x20
++)
++
++type SignalfdSiginfo struct {
++	Signo     uint32
++	Errno     int32
++	Code      int32
++	Pid       uint32
++	Uid       uint32
++	Fd        int32
++	Tid       uint32
++	Band      uint32
++	Overrun   uint32
++	Trapno    uint32
++	Status    int32
++	Int       int32
++	Ptr       uint64
++	Utime     uint64
++	Stime     uint64
++	Addr      uint64
++	Addr_lsb  uint16
++	_         uint16
++	Syscall   int32
++	Call_addr uint64
++	Arch      uint32
++	_         [28]uint8
++}
++
++const PERF_IOC_FLAG_GROUP = 0x1
++
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++const (
++	TASKSTATS_CMD_UNSPEC                  = 0x0
++	TASKSTATS_CMD_GET                     = 0x1
++	TASKSTATS_CMD_NEW                     = 0x2
++	TASKSTATS_TYPE_UNSPEC                 = 0x0
++	TASKSTATS_TYPE_PID                    = 0x1
++	TASKSTATS_TYPE_TGID                   = 0x2
++	TASKSTATS_TYPE_STATS                  = 0x3
++	TASKSTATS_TYPE_AGGR_PID               = 0x4
++	TASKSTATS_TYPE_AGGR_TGID              = 0x5
++	TASKSTATS_TYPE_NULL                   = 0x6
++	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
++	TASKSTATS_CMD_ATTR_PID                = 0x1
++	TASKSTATS_CMD_ATTR_TGID               = 0x2
++	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
++	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++)
++
++type CGroupStats struct {
++	Sleeping        uint64
++	Running         uint64
++	Stopped         uint64
++	Uninterruptible uint64
++	Io_wait         uint64
++}
++
++const (
++	CGROUPSTATS_CMD_UNSPEC        = 0x3
++	CGROUPSTATS_CMD_GET           = 0x4
++	CGROUPSTATS_CMD_NEW           = 0x5
++	CGROUPSTATS_TYPE_UNSPEC       = 0x0
++	CGROUPSTATS_TYPE_CGROUP_STATS = 0x1
++	CGROUPSTATS_CMD_ATTR_UNSPEC   = 0x0
++	CGROUPSTATS_CMD_ATTR_FD       = 0x1
++)
++
++type Genlmsghdr struct {
++	Cmd      uint8
++	Version  uint8
++	Reserved uint16
++}
++
++const (
++	CTRL_CMD_UNSPEC            = 0x0
++	CTRL_CMD_NEWFAMILY         = 0x1
++	CTRL_CMD_DELFAMILY         = 0x2
++	CTRL_CMD_GETFAMILY         = 0x3
++	CTRL_CMD_NEWOPS            = 0x4
++	CTRL_CMD_DELOPS            = 0x5
++	CTRL_CMD_GETOPS            = 0x6
++	CTRL_CMD_NEWMCAST_GRP      = 0x7
++	CTRL_CMD_DELMCAST_GRP      = 0x8
++	CTRL_CMD_GETMCAST_GRP      = 0x9
++	CTRL_ATTR_UNSPEC           = 0x0
++	CTRL_ATTR_FAMILY_ID        = 0x1
++	CTRL_ATTR_FAMILY_NAME      = 0x2
++	CTRL_ATTR_VERSION          = 0x3
++	CTRL_ATTR_HDRSIZE          = 0x4
++	CTRL_ATTR_MAXATTR          = 0x5
++	CTRL_ATTR_OPS              = 0x6
++	CTRL_ATTR_MCAST_GROUPS     = 0x7
++	CTRL_ATTR_OP_UNSPEC        = 0x0
++	CTRL_ATTR_OP_ID            = 0x1
++	CTRL_ATTR_OP_FLAGS         = 0x2
++	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
++	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
++	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++)
++
++const (
++	_CPU_SETSIZE = 0x400
++)
++
++const (
++	BDADDR_BREDR     = 0x0
++	BDADDR_LE_PUBLIC = 0x1
++	BDADDR_LE_RANDOM = 0x2
++)
++
++type PerfEventAttr struct {
++	Type               uint32
++	Size               uint32
++	Config             uint64
++	Sample             uint64
++	Sample_type        uint64
++	Read_format        uint64
++	Bits               uint64
++	Wakeup             uint32
++	Bp_type            uint32
++	Ext1               uint64
++	Ext2               uint64
++	Branch_sample_type uint64
++	Sample_regs_user   uint64
++	Sample_stack_user  uint32
++	Clockid            int32
++	Sample_regs_intr   uint64
++	Aux_watermark      uint32
++	Sample_max_stack   uint16
++	_                  uint16
++}
++
++type PerfEventMmapPage struct {
++	Version        uint32
++	Compat_version uint32
++	Lock           uint32
++	Index          uint32
++	Offset         int64
++	Time_enabled   uint64
++	Time_running   uint64
++	Capabilities   uint64
++	Pmc_width      uint16
++	Time_shift     uint16
++	Time_mult      uint32
++	Time_offset    uint64
++	Time_zero      uint64
++	Size           uint32
++	_              [948]uint8
++	Data_head      uint64
++	Data_tail      uint64
++	Data_offset    uint64
++	Data_size      uint64
++	Aux_head       uint64
++	Aux_tail       uint64
++	Aux_offset     uint64
++	Aux_size       uint64
++}
++
++const (
++	PerfBitDisabled               uint64 = CBitFieldMaskBit0
++	PerfBitInherit                       = CBitFieldMaskBit1
++	PerfBitPinned                        = CBitFieldMaskBit2
++	PerfBitExclusive                     = CBitFieldMaskBit3
++	PerfBitExcludeUser                   = CBitFieldMaskBit4
++	PerfBitExcludeKernel                 = CBitFieldMaskBit5
++	PerfBitExcludeHv                     = CBitFieldMaskBit6
++	PerfBitExcludeIdle                   = CBitFieldMaskBit7
++	PerfBitMmap                          = CBitFieldMaskBit8
++	PerfBitComm                          = CBitFieldMaskBit9
++	PerfBitFreq                          = CBitFieldMaskBit10
++	PerfBitInheritStat                   = CBitFieldMaskBit11
++	PerfBitEnableOnExec                  = CBitFieldMaskBit12
++	PerfBitTask                          = CBitFieldMaskBit13
++	PerfBitWatermark                     = CBitFieldMaskBit14
++	PerfBitPreciseIPBit1                 = CBitFieldMaskBit15
++	PerfBitPreciseIPBit2                 = CBitFieldMaskBit16
++	PerfBitMmapData                      = CBitFieldMaskBit17
++	PerfBitSampleIDAll                   = CBitFieldMaskBit18
++	PerfBitExcludeHost                   = CBitFieldMaskBit19
++	PerfBitExcludeGuest                  = CBitFieldMaskBit20
++	PerfBitExcludeCallchainKernel        = CBitFieldMaskBit21
++	PerfBitExcludeCallchainUser          = CBitFieldMaskBit22
++	PerfBitMmap2                         = CBitFieldMaskBit23
++	PerfBitCommExec                      = CBitFieldMaskBit24
++	PerfBitUseClockID                    = CBitFieldMaskBit25
++	PerfBitContextSwitch                 = CBitFieldMaskBit26
++)
++
++const (
++	PERF_TYPE_HARDWARE   = 0x0
++	PERF_TYPE_SOFTWARE   = 0x1
++	PERF_TYPE_TRACEPOINT = 0x2
++	PERF_TYPE_HW_CACHE   = 0x3
++	PERF_TYPE_RAW        = 0x4
++	PERF_TYPE_BREAKPOINT = 0x5
++
++	PERF_COUNT_HW_CPU_CYCLES              = 0x0
++	PERF_COUNT_HW_INSTRUCTIONS            = 0x1
++	PERF_COUNT_HW_CACHE_REFERENCES        = 0x2
++	PERF_COUNT_HW_CACHE_MISSES            = 0x3
++	PERF_COUNT_HW_BRANCH_INSTRUCTIONS     = 0x4
++	PERF_COUNT_HW_BRANCH_MISSES           = 0x5
++	PERF_COUNT_HW_BUS_CYCLES              = 0x6
++	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
++	PERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8
++	PERF_COUNT_HW_REF_CPU_CYCLES          = 0x9
++
++	PERF_COUNT_HW_CACHE_L1D  = 0x0
++	PERF_COUNT_HW_CACHE_L1I  = 0x1
++	PERF_COUNT_HW_CACHE_LL   = 0x2
++	PERF_COUNT_HW_CACHE_DTLB = 0x3
++	PERF_COUNT_HW_CACHE_ITLB = 0x4
++	PERF_COUNT_HW_CACHE_BPU  = 0x5
++	PERF_COUNT_HW_CACHE_NODE = 0x6
++
++	PERF_COUNT_HW_CACHE_OP_READ     = 0x0
++	PERF_COUNT_HW_CACHE_OP_WRITE    = 0x1
++	PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
++
++	PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
++	PERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1
++
++	PERF_COUNT_SW_CPU_CLOCK        = 0x0
++	PERF_COUNT_SW_TASK_CLOCK       = 0x1
++	PERF_COUNT_SW_PAGE_FAULTS      = 0x2
++	PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
++	PERF_COUNT_SW_CPU_MIGRATIONS   = 0x4
++	PERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5
++	PERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6
++	PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
++	PERF_COUNT_SW_EMULATION_FAULTS = 0x8
++	PERF_COUNT_SW_DUMMY            = 0x9
++	PERF_COUNT_SW_BPF_OUTPUT       = 0xa
++
++	PERF_SAMPLE_IP           = 0x1
++	PERF_SAMPLE_TID          = 0x2
++	PERF_SAMPLE_TIME         = 0x4
++	PERF_SAMPLE_ADDR         = 0x8
++	PERF_SAMPLE_READ         = 0x10
++	PERF_SAMPLE_CALLCHAIN    = 0x20
++	PERF_SAMPLE_ID           = 0x40
++	PERF_SAMPLE_CPU          = 0x80
++	PERF_SAMPLE_PERIOD       = 0x100
++	PERF_SAMPLE_STREAM_ID    = 0x200
++	PERF_SAMPLE_RAW          = 0x400
++	PERF_SAMPLE_BRANCH_STACK = 0x800
++
++	PERF_SAMPLE_BRANCH_USER       = 0x1
++	PERF_SAMPLE_BRANCH_KERNEL     = 0x2
++	PERF_SAMPLE_BRANCH_HV         = 0x4
++	PERF_SAMPLE_BRANCH_ANY        = 0x8
++	PERF_SAMPLE_BRANCH_ANY_CALL   = 0x10
++	PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
++	PERF_SAMPLE_BRANCH_IND_CALL   = 0x40
++	PERF_SAMPLE_BRANCH_ABORT_TX   = 0x80
++	PERF_SAMPLE_BRANCH_IN_TX      = 0x100
++	PERF_SAMPLE_BRANCH_NO_TX      = 0x200
++	PERF_SAMPLE_BRANCH_COND       = 0x400
++	PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
++	PERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000
++	PERF_SAMPLE_BRANCH_CALL       = 0x2000
++	PERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000
++	PERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000
++	PERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000
++
++	PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
++	PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
++	PERF_FORMAT_ID                 = 0x4
++	PERF_FORMAT_GROUP              = 0x8
++
++	PERF_RECORD_MMAP            = 0x1
++	PERF_RECORD_LOST            = 0x2
++	PERF_RECORD_COMM            = 0x3
++	PERF_RECORD_EXIT            = 0x4
++	PERF_RECORD_THROTTLE        = 0x5
++	PERF_RECORD_UNTHROTTLE      = 0x6
++	PERF_RECORD_FORK            = 0x7
++	PERF_RECORD_READ            = 0x8
++	PERF_RECORD_SAMPLE          = 0x9
++	PERF_RECORD_MMAP2           = 0xa
++	PERF_RECORD_AUX             = 0xb
++	PERF_RECORD_ITRACE_START    = 0xc
++	PERF_RECORD_LOST_SAMPLES    = 0xd
++	PERF_RECORD_SWITCH          = 0xe
++	PERF_RECORD_SWITCH_CPU_WIDE = 0xf
++	PERF_RECORD_NAMESPACES      = 0x10
++
++	PERF_CONTEXT_HV     = -0x20
++	PERF_CONTEXT_KERNEL = -0x80
++	PERF_CONTEXT_USER   = -0x200
++
++	PERF_CONTEXT_GUEST        = -0x800
++	PERF_CONTEXT_GUEST_KERNEL = -0x880
++	PERF_CONTEXT_GUEST_USER   = -0xa00
++
++	PERF_FLAG_FD_NO_GROUP = 0x1
++	PERF_FLAG_FD_OUTPUT   = 0x2
++	PERF_FLAG_PID_CGROUP  = 0x4
++	PERF_FLAG_FD_CLOEXEC  = 0x8
++)
++
++type TCPMD5Sig struct {
++	Addr      SockaddrStorage
++	Flags     uint8
++	Prefixlen uint8
++	Keylen    uint16
++	_         uint32
++	Key       [80]uint8
++}
++
++type HDDriveCmdHdr struct {
++	Command uint8
++	Number  uint8
++	Feature uint8
++	Count   uint8
++}
++
++type HDDriveID struct {
++	Config         uint16
++	Cyls           uint16
++	Reserved2      uint16
++	Heads          uint16
++	Track_bytes    uint16
++	Sector_bytes   uint16
++	Sectors        uint16
++	Vendor0        uint16
++	Vendor1        uint16
++	Vendor2        uint16
++	Serial_no      [20]uint8
++	Buf_type       uint16
++	Buf_size       uint16
++	Ecc_bytes      uint16
++	Fw_rev         [8]uint8
++	Model          [40]uint8
++	Max_multsect   uint8
++	Vendor3        uint8
++	Dword_io       uint16
++	Vendor4        uint8
++	Capability     uint8
++	Reserved50     uint16
++	Vendor5        uint8
++	TPIO           uint8
++	Vendor6        uint8
++	TDMA           uint8
++	Field_valid    uint16
++	Cur_cyls       uint16
++	Cur_heads      uint16
++	Cur_sectors    uint16
++	Cur_capacity0  uint16
++	Cur_capacity1  uint16
++	Multsect       uint8
++	Multsect_valid uint8
++	Lba_capacity   uint32
++	Dma_1word      uint16
++	Dma_mword      uint16
++	Eide_pio_modes uint16
++	Eide_dma_min   uint16
++	Eide_dma_time  uint16
++	Eide_pio       uint16
++	Eide_pio_iordy uint16
++	Words69_70     [2]uint16
++	Words71_74     [4]uint16
++	Queue_depth    uint16
++	Words76_79     [4]uint16
++	Major_rev_num  uint16
++	Minor_rev_num  uint16
++	Command_set_1  uint16
++	Command_set_2  uint16
++	Cfsse          uint16
++	Cfs_enable_1   uint16
++	Cfs_enable_2   uint16
++	Csf_default    uint16
++	Dma_ultra      uint16
++	Trseuc         uint16
++	TrsEuc         uint16
++	CurAPMvalues   uint16
++	Mprc           uint16
++	Hw_config      uint16
++	Acoustic       uint16
++	Msrqs          uint16
++	Sxfert         uint16
++	Sal            uint16
++	Spg            uint32
++	Lba_capacity_2 uint64
++	Words104_125   [22]uint16
++	Last_lun       uint16
++	Word127        uint16
++	Dlf            uint16
++	Csfo           uint16
++	Words130_155   [26]uint16
++	Word156        uint16
++	Words157_159   [3]uint16
++	Cfa_power      uint16
++	Words161_175   [15]uint16
++	Words176_205   [30]uint16
++	Words206_254   [49]uint16
++	Integrity_word uint16
++}
++
++const (
++	ST_MANDLOCK    = 0x40
++	ST_NOATIME     = 0x400
++	ST_NODEV       = 0x4
++	ST_NODIRATIME  = 0x800
++	ST_NOEXEC      = 0x8
++	ST_NOSUID      = 0x2
++	ST_RDONLY      = 0x1
++	ST_RELATIME    = 0x1000
++	ST_SYNCHRONOUS = 0x10
++)
++
++type Tpacket2Hdr struct {
++	Status    uint32
++	Len       uint32
++	Snaplen   uint32
++	Mac       uint16
++	Net       uint16
++	Sec       uint32
++	Nsec      uint32
++	Vlan_tci  uint16
++	Vlan_tpid uint16
++	_         [4]uint8
++}
++
++type Tpacket3Hdr struct {
++	Next_offset uint32
++	Sec         uint32
++	Nsec        uint32
++	Snaplen     uint32
++	Len         uint32
++	Status      uint32
++	Mac         uint16
++	Net         uint16
++	Hv1         TpacketHdrVariant1
++	_           [8]uint8
++}
++
++type TpacketHdrVariant1 struct {
++	Rxhash    uint32
++	Vlan_tci  uint32
++	Vlan_tpid uint16
++	_         uint16
++}
++
++type TpacketBlockDesc struct {
++	Version uint32
++	To_priv uint32
++	Hdr     [40]byte
++}
++
++type TpacketBDTS struct {
++	Sec  uint32
++	Usec uint32
++}
++
++type TpacketHdrV1 struct {
++	Block_status        uint32
++	Num_pkts            uint32
++	Offset_to_first_pkt uint32
++	Blk_len             uint32
++	Seq_num             uint64
++	Ts_first_pkt        TpacketBDTS
++	Ts_last_pkt         TpacketBDTS
++}
++
++type TpacketReq struct {
++	Block_size uint32
++	Block_nr   uint32
++	Frame_size uint32
++	Frame_nr   uint32
++}
++
++type TpacketReq3 struct {
++	Block_size       uint32
++	Block_nr         uint32
++	Frame_size       uint32
++	Frame_nr         uint32
++	Retire_blk_tov   uint32
++	Sizeof_priv      uint32
++	Feature_req_word uint32
++}
++
++type TpacketStats struct {
++	Packets uint32
++	Drops   uint32
++}
++
++type TpacketStatsV3 struct {
++	Packets      uint32
++	Drops        uint32
++	Freeze_q_cnt uint32
++}
++
++type TpacketAuxdata struct {
++	Status    uint32
++	Len       uint32
++	Snaplen   uint32
++	Mac       uint16
++	Net       uint16
++	Vlan_tci  uint16
++	Vlan_tpid uint16
++}
++
++const (
++	TPACKET_V1 = 0x0
++	TPACKET_V2 = 0x1
++	TPACKET_V3 = 0x2
++)
++
++const (
++	SizeofTpacket2Hdr = 0x20
++	SizeofTpacket3Hdr = 0x30
++
++	SizeofTpacketStats   = 0x8
++	SizeofTpacketStatsV3 = 0xc
++)
++
++const (
++	NF_INET_PRE_ROUTING  = 0x0
++	NF_INET_LOCAL_IN     = 0x1
++	NF_INET_FORWARD      = 0x2
++	NF_INET_LOCAL_OUT    = 0x3
++	NF_INET_POST_ROUTING = 0x4
++	NF_INET_NUMHOOKS     = 0x5
++)
++
++const (
++	NF_NETDEV_INGRESS  = 0x0
++	NF_NETDEV_NUMHOOKS = 0x1
++)
++
++const (
++	NFPROTO_UNSPEC   = 0x0
++	NFPROTO_INET     = 0x1
++	NFPROTO_IPV4     = 0x2
++	NFPROTO_ARP      = 0x3
++	NFPROTO_NETDEV   = 0x5
++	NFPROTO_BRIDGE   = 0x7
++	NFPROTO_IPV6     = 0xa
++	NFPROTO_DECNET   = 0xc
++	NFPROTO_NUMPROTO = 0xd
++)
++
++type Nfgenmsg struct {
++	Nfgen_family uint8
++	Version      uint8
++	Res_id       uint16
++}
++
++const (
++	NFNL_BATCH_UNSPEC = 0x0
++	NFNL_BATCH_GENID  = 0x1
++)
++
++const (
++	NFT_REG_VERDICT                   = 0x0
++	NFT_REG_1                         = 0x1
++	NFT_REG_2                         = 0x2
++	NFT_REG_3                         = 0x3
++	NFT_REG_4                         = 0x4
++	NFT_REG32_00                      = 0x8
++	NFT_REG32_01                      = 0x9
++	NFT_REG32_02                      = 0xa
++	NFT_REG32_03                      = 0xb
++	NFT_REG32_04                      = 0xc
++	NFT_REG32_05                      = 0xd
++	NFT_REG32_06                      = 0xe
++	NFT_REG32_07                      = 0xf
++	NFT_REG32_08                      = 0x10
++	NFT_REG32_09                      = 0x11
++	NFT_REG32_10                      = 0x12
++	NFT_REG32_11                      = 0x13
++	NFT_REG32_12                      = 0x14
++	NFT_REG32_13                      = 0x15
++	NFT_REG32_14                      = 0x16
++	NFT_REG32_15                      = 0x17
++	NFT_CONTINUE                      = -0x1
++	NFT_BREAK                         = -0x2
++	NFT_JUMP                          = -0x3
++	NFT_GOTO                          = -0x4
++	NFT_RETURN                        = -0x5
++	NFT_MSG_NEWTABLE                  = 0x0
++	NFT_MSG_GETTABLE                  = 0x1
++	NFT_MSG_DELTABLE                  = 0x2
++	NFT_MSG_NEWCHAIN                  = 0x3
++	NFT_MSG_GETCHAIN                  = 0x4
++	NFT_MSG_DELCHAIN                  = 0x5
++	NFT_MSG_NEWRULE                   = 0x6
++	NFT_MSG_GETRULE                   = 0x7
++	NFT_MSG_DELRULE                   = 0x8
++	NFT_MSG_NEWSET                    = 0x9
++	NFT_MSG_GETSET                    = 0xa
++	NFT_MSG_DELSET                    = 0xb
++	NFT_MSG_NEWSETELEM                = 0xc
++	NFT_MSG_GETSETELEM                = 0xd
++	NFT_MSG_DELSETELEM                = 0xe
++	NFT_MSG_NEWGEN                    = 0xf
++	NFT_MSG_GETGEN                    = 0x10
++	NFT_MSG_TRACE                     = 0x11
++	NFT_MSG_NEWOBJ                    = 0x12
++	NFT_MSG_GETOBJ                    = 0x13
++	NFT_MSG_DELOBJ                    = 0x14
++	NFT_MSG_GETOBJ_RESET              = 0x15
++	NFT_MSG_MAX                       = 0x19
++	NFTA_LIST_UNPEC                   = 0x0
++	NFTA_LIST_ELEM                    = 0x1
++	NFTA_HOOK_UNSPEC                  = 0x0
++	NFTA_HOOK_HOOKNUM                 = 0x1
++	NFTA_HOOK_PRIORITY                = 0x2
++	NFTA_HOOK_DEV                     = 0x3
++	NFT_TABLE_F_DORMANT               = 0x1
++	NFTA_TABLE_UNSPEC                 = 0x0
++	NFTA_TABLE_NAME                   = 0x1
++	NFTA_TABLE_FLAGS                  = 0x2
++	NFTA_TABLE_USE                    = 0x3
++	NFTA_CHAIN_UNSPEC                 = 0x0
++	NFTA_CHAIN_TABLE                  = 0x1
++	NFTA_CHAIN_HANDLE                 = 0x2
++	NFTA_CHAIN_NAME                   = 0x3
++	NFTA_CHAIN_HOOK                   = 0x4
++	NFTA_CHAIN_POLICY                 = 0x5
++	NFTA_CHAIN_USE                    = 0x6
++	NFTA_CHAIN_TYPE                   = 0x7
++	NFTA_CHAIN_COUNTERS               = 0x8
++	NFTA_CHAIN_PAD                    = 0x9
++	NFTA_RULE_UNSPEC                  = 0x0
++	NFTA_RULE_TABLE                   = 0x1
++	NFTA_RULE_CHAIN                   = 0x2
++	NFTA_RULE_HANDLE                  = 0x3
++	NFTA_RULE_EXPRESSIONS             = 0x4
++	NFTA_RULE_COMPAT                  = 0x5
++	NFTA_RULE_POSITION                = 0x6
++	NFTA_RULE_USERDATA                = 0x7
++	NFTA_RULE_PAD                     = 0x8
++	NFTA_RULE_ID                      = 0x9
++	NFT_RULE_COMPAT_F_INV             = 0x2
++	NFT_RULE_COMPAT_F_MASK            = 0x2
++	NFTA_RULE_COMPAT_UNSPEC           = 0x0
++	NFTA_RULE_COMPAT_PROTO            = 0x1
++	NFTA_RULE_COMPAT_FLAGS            = 0x2
++	NFT_SET_ANONYMOUS                 = 0x1
++	NFT_SET_CONSTANT                  = 0x2
++	NFT_SET_INTERVAL                  = 0x4
++	NFT_SET_MAP                       = 0x8
++	NFT_SET_TIMEOUT                   = 0x10
++	NFT_SET_EVAL                      = 0x20
++	NFT_SET_OBJECT                    = 0x40
++	NFT_SET_POL_PERFORMANCE           = 0x0
++	NFT_SET_POL_MEMORY                = 0x1
++	NFTA_SET_DESC_UNSPEC              = 0x0
++	NFTA_SET_DESC_SIZE                = 0x1
++	NFTA_SET_UNSPEC                   = 0x0
++	NFTA_SET_TABLE                    = 0x1
++	NFTA_SET_NAME                     = 0x2
++	NFTA_SET_FLAGS                    = 0x3
++	NFTA_SET_KEY_TYPE                 = 0x4
++	NFTA_SET_KEY_LEN                  = 0x5
++	NFTA_SET_DATA_TYPE                = 0x6
++	NFTA_SET_DATA_LEN                 = 0x7
++	NFTA_SET_POLICY                   = 0x8
++	NFTA_SET_DESC                     = 0x9
++	NFTA_SET_ID                       = 0xa
++	NFTA_SET_TIMEOUT                  = 0xb
++	NFTA_SET_GC_INTERVAL              = 0xc
++	NFTA_SET_USERDATA                 = 0xd
++	NFTA_SET_PAD                      = 0xe
++	NFTA_SET_OBJ_TYPE                 = 0xf
++	NFT_SET_ELEM_INTERVAL_END         = 0x1
++	NFTA_SET_ELEM_UNSPEC              = 0x0
++	NFTA_SET_ELEM_KEY                 = 0x1
++	NFTA_SET_ELEM_DATA                = 0x2
++	NFTA_SET_ELEM_FLAGS               = 0x3
++	NFTA_SET_ELEM_TIMEOUT             = 0x4
++	NFTA_SET_ELEM_EXPIRATION          = 0x5
++	NFTA_SET_ELEM_USERDATA            = 0x6
++	NFTA_SET_ELEM_EXPR                = 0x7
++	NFTA_SET_ELEM_PAD                 = 0x8
++	NFTA_SET_ELEM_OBJREF              = 0x9
++	NFTA_SET_ELEM_LIST_UNSPEC         = 0x0
++	NFTA_SET_ELEM_LIST_TABLE          = 0x1
++	NFTA_SET_ELEM_LIST_SET            = 0x2
++	NFTA_SET_ELEM_LIST_ELEMENTS       = 0x3
++	NFTA_SET_ELEM_LIST_SET_ID         = 0x4
++	NFT_DATA_VALUE                    = 0x0
++	NFT_DATA_VERDICT                  = 0xffffff00
++	NFTA_DATA_UNSPEC                  = 0x0
++	NFTA_DATA_VALUE                   = 0x1
++	NFTA_DATA_VERDICT                 = 0x2
++	NFTA_VERDICT_UNSPEC               = 0x0
++	NFTA_VERDICT_CODE                 = 0x1
++	NFTA_VERDICT_CHAIN                = 0x2
++	NFTA_EXPR_UNSPEC                  = 0x0
++	NFTA_EXPR_NAME                    = 0x1
++	NFTA_EXPR_DATA                    = 0x2
++	NFTA_IMMEDIATE_UNSPEC             = 0x0
++	NFTA_IMMEDIATE_DREG               = 0x1
++	NFTA_IMMEDIATE_DATA               = 0x2
++	NFTA_BITWISE_UNSPEC               = 0x0
++	NFTA_BITWISE_SREG                 = 0x1
++	NFTA_BITWISE_DREG                 = 0x2
++	NFTA_BITWISE_LEN                  = 0x3
++	NFTA_BITWISE_MASK                 = 0x4
++	NFTA_BITWISE_XOR                  = 0x5
++	NFT_BYTEORDER_NTOH                = 0x0
++	NFT_BYTEORDER_HTON                = 0x1
++	NFTA_BYTEORDER_UNSPEC             = 0x0
++	NFTA_BYTEORDER_SREG               = 0x1
++	NFTA_BYTEORDER_DREG               = 0x2
++	NFTA_BYTEORDER_OP                 = 0x3
++	NFTA_BYTEORDER_LEN                = 0x4
++	NFTA_BYTEORDER_SIZE               = 0x5
++	NFT_CMP_EQ                        = 0x0
++	NFT_CMP_NEQ                       = 0x1
++	NFT_CMP_LT                        = 0x2
++	NFT_CMP_LTE                       = 0x3
++	NFT_CMP_GT                        = 0x4
++	NFT_CMP_GTE                       = 0x5
++	NFTA_CMP_UNSPEC                   = 0x0
++	NFTA_CMP_SREG                     = 0x1
++	NFTA_CMP_OP                       = 0x2
++	NFTA_CMP_DATA                     = 0x3
++	NFT_RANGE_EQ                      = 0x0
++	NFT_RANGE_NEQ                     = 0x1
++	NFTA_RANGE_UNSPEC                 = 0x0
++	NFTA_RANGE_SREG                   = 0x1
++	NFTA_RANGE_OP                     = 0x2
++	NFTA_RANGE_FROM_DATA              = 0x3
++	NFTA_RANGE_TO_DATA                = 0x4
++	NFT_LOOKUP_F_INV                  = 0x1
++	NFTA_LOOKUP_UNSPEC                = 0x0
++	NFTA_LOOKUP_SET                   = 0x1
++	NFTA_LOOKUP_SREG                  = 0x2
++	NFTA_LOOKUP_DREG                  = 0x3
++	NFTA_LOOKUP_SET_ID                = 0x4
++	NFTA_LOOKUP_FLAGS                 = 0x5
++	NFT_DYNSET_OP_ADD                 = 0x0
++	NFT_DYNSET_OP_UPDATE              = 0x1
++	NFT_DYNSET_F_INV                  = 0x1
++	NFTA_DYNSET_UNSPEC                = 0x0
++	NFTA_DYNSET_SET_NAME              = 0x1
++	NFTA_DYNSET_SET_ID                = 0x2
++	NFTA_DYNSET_OP                    = 0x3
++	NFTA_DYNSET_SREG_KEY              = 0x4
++	NFTA_DYNSET_SREG_DATA             = 0x5
++	NFTA_DYNSET_TIMEOUT               = 0x6
++	NFTA_DYNSET_EXPR                  = 0x7
++	NFTA_DYNSET_PAD                   = 0x8
++	NFTA_DYNSET_FLAGS                 = 0x9
++	NFT_PAYLOAD_LL_HEADER             = 0x0
++	NFT_PAYLOAD_NETWORK_HEADER        = 0x1
++	NFT_PAYLOAD_TRANSPORT_HEADER      = 0x2
++	NFT_PAYLOAD_CSUM_NONE             = 0x0
++	NFT_PAYLOAD_CSUM_INET             = 0x1
++	NFT_PAYLOAD_L4CSUM_PSEUDOHDR      = 0x1
++	NFTA_PAYLOAD_UNSPEC               = 0x0
++	NFTA_PAYLOAD_DREG                 = 0x1
++	NFTA_PAYLOAD_BASE                 = 0x2
++	NFTA_PAYLOAD_OFFSET               = 0x3
++	NFTA_PAYLOAD_LEN                  = 0x4
++	NFTA_PAYLOAD_SREG                 = 0x5
++	NFTA_PAYLOAD_CSUM_TYPE            = 0x6
++	NFTA_PAYLOAD_CSUM_OFFSET          = 0x7
++	NFTA_PAYLOAD_CSUM_FLAGS           = 0x8
++	NFT_EXTHDR_F_PRESENT              = 0x1
++	NFT_EXTHDR_OP_IPV6                = 0x0
++	NFT_EXTHDR_OP_TCPOPT              = 0x1
++	NFTA_EXTHDR_UNSPEC                = 0x0
++	NFTA_EXTHDR_DREG                  = 0x1
++	NFTA_EXTHDR_TYPE                  = 0x2
++	NFTA_EXTHDR_OFFSET                = 0x3
++	NFTA_EXTHDR_LEN                   = 0x4
++	NFTA_EXTHDR_FLAGS                 = 0x5
++	NFTA_EXTHDR_OP                    = 0x6
++	NFTA_EXTHDR_SREG                  = 0x7
++	NFT_META_LEN                      = 0x0
++	NFT_META_PROTOCOL                 = 0x1
++	NFT_META_PRIORITY                 = 0x2
++	NFT_META_MARK                     = 0x3
++	NFT_META_IIF                      = 0x4
++	NFT_META_OIF                      = 0x5
++	NFT_META_IIFNAME                  = 0x6
++	NFT_META_OIFNAME                  = 0x7
++	NFT_META_IIFTYPE                  = 0x8
++	NFT_META_OIFTYPE                  = 0x9
++	NFT_META_SKUID                    = 0xa
++	NFT_META_SKGID                    = 0xb
++	NFT_META_NFTRACE                  = 0xc
++	NFT_META_RTCLASSID                = 0xd
++	NFT_META_SECMARK                  = 0xe
++	NFT_META_NFPROTO                  = 0xf
++	NFT_META_L4PROTO                  = 0x10
++	NFT_META_BRI_IIFNAME              = 0x11
++	NFT_META_BRI_OIFNAME              = 0x12
++	NFT_META_PKTTYPE                  = 0x13
++	NFT_META_CPU                      = 0x14
++	NFT_META_IIFGROUP                 = 0x15
++	NFT_META_OIFGROUP                 = 0x16
++	NFT_META_CGROUP                   = 0x17
++	NFT_META_PRANDOM                  = 0x18
++	NFT_RT_CLASSID                    = 0x0
++	NFT_RT_NEXTHOP4                   = 0x1
++	NFT_RT_NEXTHOP6                   = 0x2
++	NFT_RT_TCPMSS                     = 0x3
++	NFT_HASH_JENKINS                  = 0x0
++	NFT_HASH_SYM                      = 0x1
++	NFTA_HASH_UNSPEC                  = 0x0
++	NFTA_HASH_SREG                    = 0x1
++	NFTA_HASH_DREG                    = 0x2
++	NFTA_HASH_LEN                     = 0x3
++	NFTA_HASH_MODULUS                 = 0x4
++	NFTA_HASH_SEED                    = 0x5
++	NFTA_HASH_OFFSET                  = 0x6
++	NFTA_HASH_TYPE                    = 0x7
++	NFTA_META_UNSPEC                  = 0x0
++	NFTA_META_DREG                    = 0x1
++	NFTA_META_KEY                     = 0x2
++	NFTA_META_SREG                    = 0x3
++	NFTA_RT_UNSPEC                    = 0x0
++	NFTA_RT_DREG                      = 0x1
++	NFTA_RT_KEY                       = 0x2
++	NFT_CT_STATE                      = 0x0
++	NFT_CT_DIRECTION                  = 0x1
++	NFT_CT_STATUS                     = 0x2
++	NFT_CT_MARK                       = 0x3
++	NFT_CT_SECMARK                    = 0x4
++	NFT_CT_EXPIRATION                 = 0x5
++	NFT_CT_HELPER                     = 0x6
++	NFT_CT_L3PROTOCOL                 = 0x7
++	NFT_CT_SRC                        = 0x8
++	NFT_CT_DST                        = 0x9
++	NFT_CT_PROTOCOL                   = 0xa
++	NFT_CT_PROTO_SRC                  = 0xb
++	NFT_CT_PROTO_DST                  = 0xc
++	NFT_CT_LABELS                     = 0xd
++	NFT_CT_PKTS                       = 0xe
++	NFT_CT_BYTES                      = 0xf
++	NFT_CT_AVGPKT                     = 0x10
++	NFT_CT_ZONE                       = 0x11
++	NFT_CT_EVENTMASK                  = 0x12
++	NFTA_CT_UNSPEC                    = 0x0
++	NFTA_CT_DREG                      = 0x1
++	NFTA_CT_KEY                       = 0x2
++	NFTA_CT_DIRECTION                 = 0x3
++	NFTA_CT_SREG                      = 0x4
++	NFT_LIMIT_PKTS                    = 0x0
++	NFT_LIMIT_PKT_BYTES               = 0x1
++	NFT_LIMIT_F_INV                   = 0x1
++	NFTA_LIMIT_UNSPEC                 = 0x0
++	NFTA_LIMIT_RATE                   = 0x1
++	NFTA_LIMIT_UNIT                   = 0x2
++	NFTA_LIMIT_BURST                  = 0x3
++	NFTA_LIMIT_TYPE                   = 0x4
++	NFTA_LIMIT_FLAGS                  = 0x5
++	NFTA_LIMIT_PAD                    = 0x6
++	NFTA_COUNTER_UNSPEC               = 0x0
++	NFTA_COUNTER_BYTES                = 0x1
++	NFTA_COUNTER_PACKETS              = 0x2
++	NFTA_COUNTER_PAD                  = 0x3
++	NFTA_LOG_UNSPEC                   = 0x0
++	NFTA_LOG_GROUP                    = 0x1
++	NFTA_LOG_PREFIX                   = 0x2
++	NFTA_LOG_SNAPLEN                  = 0x3
++	NFTA_LOG_QTHRESHOLD               = 0x4
++	NFTA_LOG_LEVEL                    = 0x5
++	NFTA_LOG_FLAGS                    = 0x6
++	NFTA_QUEUE_UNSPEC                 = 0x0
++	NFTA_QUEUE_NUM                    = 0x1
++	NFTA_QUEUE_TOTAL                  = 0x2
++	NFTA_QUEUE_FLAGS                  = 0x3
++	NFTA_QUEUE_SREG_QNUM              = 0x4
++	NFT_QUOTA_F_INV                   = 0x1
++	NFT_QUOTA_F_DEPLETED              = 0x2
++	NFTA_QUOTA_UNSPEC                 = 0x0
++	NFTA_QUOTA_BYTES                  = 0x1
++	NFTA_QUOTA_FLAGS                  = 0x2
++	NFTA_QUOTA_PAD                    = 0x3
++	NFTA_QUOTA_CONSUMED               = 0x4
++	NFT_REJECT_ICMP_UNREACH           = 0x0
++	NFT_REJECT_TCP_RST                = 0x1
++	NFT_REJECT_ICMPX_UNREACH          = 0x2
++	NFT_REJECT_ICMPX_NO_ROUTE         = 0x0
++	NFT_REJECT_ICMPX_PORT_UNREACH     = 0x1
++	NFT_REJECT_ICMPX_HOST_UNREACH     = 0x2
++	NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3
++	NFTA_REJECT_UNSPEC                = 0x0
++	NFTA_REJECT_TYPE                  = 0x1
++	NFTA_REJECT_ICMP_CODE             = 0x2
++	NFT_NAT_SNAT                      = 0x0
++	NFT_NAT_DNAT                      = 0x1
++	NFTA_NAT_UNSPEC                   = 0x0
++	NFTA_NAT_TYPE                     = 0x1
++	NFTA_NAT_FAMILY                   = 0x2
++	NFTA_NAT_REG_ADDR_MIN             = 0x3
++	NFTA_NAT_REG_ADDR_MAX             = 0x4
++	NFTA_NAT_REG_PROTO_MIN            = 0x5
++	NFTA_NAT_REG_PROTO_MAX            = 0x6
++	NFTA_NAT_FLAGS                    = 0x7
++	NFTA_MASQ_UNSPEC                  = 0x0
++	NFTA_MASQ_FLAGS                   = 0x1
++	NFTA_MASQ_REG_PROTO_MIN           = 0x2
++	NFTA_MASQ_REG_PROTO_MAX           = 0x3
++	NFTA_REDIR_UNSPEC                 = 0x0
++	NFTA_REDIR_REG_PROTO_MIN          = 0x1
++	NFTA_REDIR_REG_PROTO_MAX          = 0x2
++	NFTA_REDIR_FLAGS                  = 0x3
++	NFTA_DUP_UNSPEC                   = 0x0
++	NFTA_DUP_SREG_ADDR                = 0x1
++	NFTA_DUP_SREG_DEV                 = 0x2
++	NFTA_FWD_UNSPEC                   = 0x0
++	NFTA_FWD_SREG_DEV                 = 0x1
++	NFTA_OBJREF_UNSPEC                = 0x0
++	NFTA_OBJREF_IMM_TYPE              = 0x1
++	NFTA_OBJREF_IMM_NAME              = 0x2
++	NFTA_OBJREF_SET_SREG              = 0x3
++	NFTA_OBJREF_SET_NAME              = 0x4
++	NFTA_OBJREF_SET_ID                = 0x5
++	NFTA_GEN_UNSPEC                   = 0x0
++	NFTA_GEN_ID                       = 0x1
++	NFTA_GEN_PROC_PID                 = 0x2
++	NFTA_GEN_PROC_NAME                = 0x3
++	NFTA_FIB_UNSPEC                   = 0x0
++	NFTA_FIB_DREG                     = 0x1
++	NFTA_FIB_RESULT                   = 0x2
++	NFTA_FIB_FLAGS                    = 0x3
++	NFT_FIB_RESULT_UNSPEC             = 0x0
++	NFT_FIB_RESULT_OIF                = 0x1
++	NFT_FIB_RESULT_OIFNAME            = 0x2
++	NFT_FIB_RESULT_ADDRTYPE           = 0x3
++	NFTA_FIB_F_SADDR                  = 0x1
++	NFTA_FIB_F_DADDR                  = 0x2
++	NFTA_FIB_F_MARK                   = 0x4
++	NFTA_FIB_F_IIF                    = 0x8
++	NFTA_FIB_F_OIF                    = 0x10
++	NFTA_FIB_F_PRESENT                = 0x20
++	NFTA_CT_HELPER_UNSPEC             = 0x0
++	NFTA_CT_HELPER_NAME               = 0x1
++	NFTA_CT_HELPER_L3PROTO            = 0x2
++	NFTA_CT_HELPER_L4PROTO            = 0x3
++	NFTA_OBJ_UNSPEC                   = 0x0
++	NFTA_OBJ_TABLE                    = 0x1
++	NFTA_OBJ_NAME                     = 0x2
++	NFTA_OBJ_TYPE                     = 0x3
++	NFTA_OBJ_DATA                     = 0x4
++	NFTA_OBJ_USE                      = 0x5
++	NFTA_TRACE_UNSPEC                 = 0x0
++	NFTA_TRACE_TABLE                  = 0x1
++	NFTA_TRACE_CHAIN                  = 0x2
++	NFTA_TRACE_RULE_HANDLE            = 0x3
++	NFTA_TRACE_TYPE                   = 0x4
++	NFTA_TRACE_VERDICT                = 0x5
++	NFTA_TRACE_ID                     = 0x6
++	NFTA_TRACE_LL_HEADER              = 0x7
++	NFTA_TRACE_NETWORK_HEADER         = 0x8
++	NFTA_TRACE_TRANSPORT_HEADER       = 0x9
++	NFTA_TRACE_IIF                    = 0xa
++	NFTA_TRACE_IIFTYPE                = 0xb
++	NFTA_TRACE_OIF                    = 0xc
++	NFTA_TRACE_OIFTYPE                = 0xd
++	NFTA_TRACE_MARK                   = 0xe
++	NFTA_TRACE_NFPROTO                = 0xf
++	NFTA_TRACE_POLICY                 = 0x10
++	NFTA_TRACE_PAD                    = 0x11
++	NFT_TRACETYPE_UNSPEC              = 0x0
++	NFT_TRACETYPE_POLICY              = 0x1
++	NFT_TRACETYPE_RETURN              = 0x2
++	NFT_TRACETYPE_RULE                = 0x3
++	NFTA_NG_UNSPEC                    = 0x0
++	NFTA_NG_DREG                      = 0x1
++	NFTA_NG_MODULUS                   = 0x2
++	NFTA_NG_TYPE                      = 0x3
++	NFTA_NG_OFFSET                    = 0x4
++	NFT_NG_INCREMENTAL                = 0x0
++	NFT_NG_RANDOM                     = 0x1
++)
++
++type RTCTime struct {
++	Sec   int32
++	Min   int32
++	Hour  int32
++	Mday  int32
++	Mon   int32
++	Year  int32
++	Wday  int32
++	Yday  int32
++	Isdst int32
++}
++
++type RTCWkAlrm struct {
++	Enabled uint8
++	Pending uint8
++	Time    RTCTime
++}
++
++type BlkpgIoctlArg struct {
++	Op      int32
++	Flags   int32
++	Datalen int32
++	Data    *byte
++}
++
++const (
++	BLKPG_ADD_PARTITION    = 0x1
++	BLKPG_DEL_PARTITION    = 0x2
++	BLKPG_RESIZE_PARTITION = 0x3
++)
++
++const (
++	NETNSA_NONE = 0x0
++	NETNSA_NSID = 0x1
++	NETNSA_PID  = 0x2
++	NETNSA_FD   = 0x3
++)
++
++type XDPRingOffset struct {
++	Producer uint64
++	Consumer uint64
++	Desc     uint64
++	Flags    uint64
++}
++
++type XDPMmapOffsets struct {
++	Rx XDPRingOffset
++	Tx XDPRingOffset
++	Fr XDPRingOffset
++	Cr XDPRingOffset
++}
++
++type XDPStatistics struct {
++	Rx_dropped       uint64
++	Rx_invalid_descs uint64
++	Tx_invalid_descs uint64
++}
++
++type XDPDesc struct {
++	Addr    uint64
++	Len     uint32
++	Options uint32
++}
++
++const (
++	NCSI_CMD_UNSPEC                 = 0x0
++	NCSI_CMD_PKG_INFO               = 0x1
++	NCSI_CMD_SET_INTERFACE          = 0x2
++	NCSI_CMD_CLEAR_INTERFACE        = 0x3
++	NCSI_ATTR_UNSPEC                = 0x0
++	NCSI_ATTR_IFINDEX               = 0x1
++	NCSI_ATTR_PACKAGE_LIST          = 0x2
++	NCSI_ATTR_PACKAGE_ID            = 0x3
++	NCSI_ATTR_CHANNEL_ID            = 0x4
++	NCSI_PKG_ATTR_UNSPEC            = 0x0
++	NCSI_PKG_ATTR                   = 0x1
++	NCSI_PKG_ATTR_ID                = 0x2
++	NCSI_PKG_ATTR_FORCED            = 0x3
++	NCSI_PKG_ATTR_CHANNEL_LIST      = 0x4
++	NCSI_CHANNEL_ATTR_UNSPEC        = 0x0
++	NCSI_CHANNEL_ATTR               = 0x1
++	NCSI_CHANNEL_ATTR_ID            = 0x2
++	NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3
++	NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4
++	NCSI_CHANNEL_ATTR_VERSION_STR   = 0x5
++	NCSI_CHANNEL_ATTR_LINK_STATE    = 0x6
++	NCSI_CHANNEL_ATTR_ACTIVE        = 0x7
++	NCSI_CHANNEL_ATTR_FORCED        = 0x8
++	NCSI_CHANNEL_ATTR_VLAN_LIST     = 0x9
++	NCSI_CHANNEL_ATTR_VLAN_ID       = 0xa
++)
++
++type ScmTimestamping struct {
++	Ts [3]Timespec
++}
++
++const (
++	SOF_TIMESTAMPING_TX_HARDWARE  = 0x1
++	SOF_TIMESTAMPING_TX_SOFTWARE  = 0x2
++	SOF_TIMESTAMPING_RX_HARDWARE  = 0x4
++	SOF_TIMESTAMPING_RX_SOFTWARE  = 0x8
++	SOF_TIMESTAMPING_SOFTWARE     = 0x10
++	SOF_TIMESTAMPING_SYS_HARDWARE = 0x20
++	SOF_TIMESTAMPING_RAW_HARDWARE = 0x40
++	SOF_TIMESTAMPING_OPT_ID       = 0x80
++	SOF_TIMESTAMPING_TX_SCHED     = 0x100
++	SOF_TIMESTAMPING_TX_ACK       = 0x200
++	SOF_TIMESTAMPING_OPT_CMSG     = 0x400
++	SOF_TIMESTAMPING_OPT_TSONLY   = 0x800
++	SOF_TIMESTAMPING_OPT_STATS    = 0x1000
++	SOF_TIMESTAMPING_OPT_PKTINFO  = 0x2000
++	SOF_TIMESTAMPING_OPT_TX_SWHW  = 0x4000
++
++	SOF_TIMESTAMPING_LAST = 0x4000
++	SOF_TIMESTAMPING_MASK = 0x7fff
++
++	SCM_TSTAMP_SND   = 0x0
++	SCM_TSTAMP_SCHED = 0x1
++	SCM_TSTAMP_ACK   = 0x2
++)
++
++type SockExtendedErr struct {
++	Errno  uint32
++	Origin uint8
++	Type   uint8
++	Code   uint8
++	Pad    uint8
++	Info   uint32
++	Data   uint32
++}
++
++type FanotifyEventMetadata struct {
++	Event_len    uint32
++	Vers         uint8
++	Reserved     uint8
++	Metadata_len uint16
++	Mask         uint64
++	Fd           int32
++	Pid          int32
++}
++
++type FanotifyResponse struct {
++	Fd       int32
++	Response uint32
++}
++
++const (
++	CRYPTO_MSG_BASE      = 0x10
++	CRYPTO_MSG_NEWALG    = 0x10
++	CRYPTO_MSG_DELALG    = 0x11
++	CRYPTO_MSG_UPDATEALG = 0x12
++	CRYPTO_MSG_GETALG    = 0x13
++	CRYPTO_MSG_DELRNG    = 0x14
++	CRYPTO_MSG_GETSTAT   = 0x15
++)
++
++const (
++	CRYPTOCFGA_UNSPEC           = 0x0
++	CRYPTOCFGA_PRIORITY_VAL     = 0x1
++	CRYPTOCFGA_REPORT_LARVAL    = 0x2
++	CRYPTOCFGA_REPORT_HASH      = 0x3
++	CRYPTOCFGA_REPORT_BLKCIPHER = 0x4
++	CRYPTOCFGA_REPORT_AEAD      = 0x5
++	CRYPTOCFGA_REPORT_COMPRESS  = 0x6
++	CRYPTOCFGA_REPORT_RNG       = 0x7
++	CRYPTOCFGA_REPORT_CIPHER    = 0x8
++	CRYPTOCFGA_REPORT_AKCIPHER  = 0x9
++	CRYPTOCFGA_REPORT_KPP       = 0xa
++	CRYPTOCFGA_REPORT_ACOMP     = 0xb
++	CRYPTOCFGA_STAT_LARVAL      = 0xc
++	CRYPTOCFGA_STAT_HASH        = 0xd
++	CRYPTOCFGA_STAT_BLKCIPHER   = 0xe
++	CRYPTOCFGA_STAT_AEAD        = 0xf
++	CRYPTOCFGA_STAT_COMPRESS    = 0x10
++	CRYPTOCFGA_STAT_RNG         = 0x11
++	CRYPTOCFGA_STAT_CIPHER      = 0x12
++	CRYPTOCFGA_STAT_AKCIPHER    = 0x13
++	CRYPTOCFGA_STAT_KPP         = 0x14
++	CRYPTOCFGA_STAT_ACOMP       = 0x15
++)
++
++const (
++	BPF_REG_0                             = 0x0
++	BPF_REG_1                             = 0x1
++	BPF_REG_2                             = 0x2
++	BPF_REG_3                             = 0x3
++	BPF_REG_4                             = 0x4
++	BPF_REG_5                             = 0x5
++	BPF_REG_6                             = 0x6
++	BPF_REG_7                             = 0x7
++	BPF_REG_8                             = 0x8
++	BPF_REG_9                             = 0x9
++	BPF_REG_10                            = 0xa
++	BPF_MAP_CREATE                        = 0x0
++	BPF_MAP_LOOKUP_ELEM                   = 0x1
++	BPF_MAP_UPDATE_ELEM                   = 0x2
++	BPF_MAP_DELETE_ELEM                   = 0x3
++	BPF_MAP_GET_NEXT_KEY                  = 0x4
++	BPF_PROG_LOAD                         = 0x5
++	BPF_OBJ_PIN                           = 0x6
++	BPF_OBJ_GET                           = 0x7
++	BPF_PROG_ATTACH                       = 0x8
++	BPF_PROG_DETACH                       = 0x9
++	BPF_PROG_TEST_RUN                     = 0xa
++	BPF_PROG_GET_NEXT_ID                  = 0xb
++	BPF_MAP_GET_NEXT_ID                   = 0xc
++	BPF_PROG_GET_FD_BY_ID                 = 0xd
++	BPF_MAP_GET_FD_BY_ID                  = 0xe
++	BPF_OBJ_GET_INFO_BY_FD                = 0xf
++	BPF_PROG_QUERY                        = 0x10
++	BPF_RAW_TRACEPOINT_OPEN               = 0x11
++	BPF_BTF_LOAD                          = 0x12
++	BPF_BTF_GET_FD_BY_ID                  = 0x13
++	BPF_TASK_FD_QUERY                     = 0x14
++	BPF_MAP_LOOKUP_AND_DELETE_ELEM        = 0x15
++	BPF_MAP_FREEZE                        = 0x16
++	BPF_BTF_GET_NEXT_ID                   = 0x17
++	BPF_MAP_TYPE_UNSPEC                   = 0x0
++	BPF_MAP_TYPE_HASH                     = 0x1
++	BPF_MAP_TYPE_ARRAY                    = 0x2
++	BPF_MAP_TYPE_PROG_ARRAY               = 0x3
++	BPF_MAP_TYPE_PERF_EVENT_ARRAY         = 0x4
++	BPF_MAP_TYPE_PERCPU_HASH              = 0x5
++	BPF_MAP_TYPE_PERCPU_ARRAY             = 0x6
++	BPF_MAP_TYPE_STACK_TRACE              = 0x7
++	BPF_MAP_TYPE_CGROUP_ARRAY             = 0x8
++	BPF_MAP_TYPE_LRU_HASH                 = 0x9
++	BPF_MAP_TYPE_LRU_PERCPU_HASH          = 0xa
++	BPF_MAP_TYPE_LPM_TRIE                 = 0xb
++	BPF_MAP_TYPE_ARRAY_OF_MAPS            = 0xc
++	BPF_MAP_TYPE_HASH_OF_MAPS             = 0xd
++	BPF_MAP_TYPE_DEVMAP                   = 0xe
++	BPF_MAP_TYPE_SOCKMAP                  = 0xf
++	BPF_MAP_TYPE_CPUMAP                   = 0x10
++	BPF_MAP_TYPE_XSKMAP                   = 0x11
++	BPF_MAP_TYPE_SOCKHASH                 = 0x12
++	BPF_MAP_TYPE_CGROUP_STORAGE           = 0x13
++	BPF_MAP_TYPE_REUSEPORT_SOCKARRAY      = 0x14
++	BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE    = 0x15
++	BPF_MAP_TYPE_QUEUE                    = 0x16
++	BPF_MAP_TYPE_STACK                    = 0x17
++	BPF_MAP_TYPE_SK_STORAGE               = 0x18
++	BPF_MAP_TYPE_DEVMAP_HASH              = 0x19
++	BPF_PROG_TYPE_UNSPEC                  = 0x0
++	BPF_PROG_TYPE_SOCKET_FILTER           = 0x1
++	BPF_PROG_TYPE_KPROBE                  = 0x2
++	BPF_PROG_TYPE_SCHED_CLS               = 0x3
++	BPF_PROG_TYPE_SCHED_ACT               = 0x4
++	BPF_PROG_TYPE_TRACEPOINT              = 0x5
++	BPF_PROG_TYPE_XDP                     = 0x6
++	BPF_PROG_TYPE_PERF_EVENT              = 0x7
++	BPF_PROG_TYPE_CGROUP_SKB              = 0x8
++	BPF_PROG_TYPE_CGROUP_SOCK             = 0x9
++	BPF_PROG_TYPE_LWT_IN                  = 0xa
++	BPF_PROG_TYPE_LWT_OUT                 = 0xb
++	BPF_PROG_TYPE_LWT_XMIT                = 0xc
++	BPF_PROG_TYPE_SOCK_OPS                = 0xd
++	BPF_PROG_TYPE_SK_SKB                  = 0xe
++	BPF_PROG_TYPE_CGROUP_DEVICE           = 0xf
++	BPF_PROG_TYPE_SK_MSG                  = 0x10
++	BPF_PROG_TYPE_RAW_TRACEPOINT          = 0x11
++	BPF_PROG_TYPE_CGROUP_SOCK_ADDR        = 0x12
++	BPF_PROG_TYPE_LWT_SEG6LOCAL           = 0x13
++	BPF_PROG_TYPE_LIRC_MODE2              = 0x14
++	BPF_PROG_TYPE_SK_REUSEPORT            = 0x15
++	BPF_PROG_TYPE_FLOW_DISSECTOR          = 0x16
++	BPF_PROG_TYPE_CGROUP_SYSCTL           = 0x17
++	BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18
++	BPF_PROG_TYPE_CGROUP_SOCKOPT          = 0x19
++	BPF_PROG_TYPE_TRACING                 = 0x1a
++	BPF_CGROUP_INET_INGRESS               = 0x0
++	BPF_CGROUP_INET_EGRESS                = 0x1
++	BPF_CGROUP_INET_SOCK_CREATE           = 0x2
++	BPF_CGROUP_SOCK_OPS                   = 0x3
++	BPF_SK_SKB_STREAM_PARSER              = 0x4
++	BPF_SK_SKB_STREAM_VERDICT             = 0x5
++	BPF_CGROUP_DEVICE                     = 0x6
++	BPF_SK_MSG_VERDICT                    = 0x7
++	BPF_CGROUP_INET4_BIND                 = 0x8
++	BPF_CGROUP_INET6_BIND                 = 0x9
++	BPF_CGROUP_INET4_CONNECT              = 0xa
++	BPF_CGROUP_INET6_CONNECT              = 0xb
++	BPF_CGROUP_INET4_POST_BIND            = 0xc
++	BPF_CGROUP_INET6_POST_BIND            = 0xd
++	BPF_CGROUP_UDP4_SENDMSG               = 0xe
++	BPF_CGROUP_UDP6_SENDMSG               = 0xf
++	BPF_LIRC_MODE2                        = 0x10
++	BPF_FLOW_DISSECTOR                    = 0x11
++	BPF_CGROUP_SYSCTL                     = 0x12
++	BPF_CGROUP_UDP4_RECVMSG               = 0x13
++	BPF_CGROUP_UDP6_RECVMSG               = 0x14
++	BPF_CGROUP_GETSOCKOPT                 = 0x15
++	BPF_CGROUP_SETSOCKOPT                 = 0x16
++	BPF_TRACE_RAW_TP                      = 0x17
++	BPF_TRACE_FENTRY                      = 0x18
++	BPF_TRACE_FEXIT                       = 0x19
++	BPF_STACK_BUILD_ID_EMPTY              = 0x0
++	BPF_STACK_BUILD_ID_VALID              = 0x1
++	BPF_STACK_BUILD_ID_IP                 = 0x2
++	BPF_ADJ_ROOM_NET                      = 0x0
++	BPF_ADJ_ROOM_MAC                      = 0x1
++	BPF_HDR_START_MAC                     = 0x0
++	BPF_HDR_START_NET                     = 0x1
++	BPF_LWT_ENCAP_SEG6                    = 0x0
++	BPF_LWT_ENCAP_SEG6_INLINE             = 0x1
++	BPF_LWT_ENCAP_IP                      = 0x2
++	BPF_OK                                = 0x0
++	BPF_DROP                              = 0x2
++	BPF_REDIRECT                          = 0x7
++	BPF_LWT_REROUTE                       = 0x80
++	BPF_SOCK_OPS_VOID                     = 0x0
++	BPF_SOCK_OPS_TIMEOUT_INIT             = 0x1
++	BPF_SOCK_OPS_RWND_INIT                = 0x2
++	BPF_SOCK_OPS_TCP_CONNECT_CB           = 0x3
++	BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB    = 0x4
++	BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB   = 0x5
++	BPF_SOCK_OPS_NEEDS_ECN                = 0x6
++	BPF_SOCK_OPS_BASE_RTT                 = 0x7
++	BPF_SOCK_OPS_RTO_CB                   = 0x8
++	BPF_SOCK_OPS_RETRANS_CB               = 0x9
++	BPF_SOCK_OPS_STATE_CB                 = 0xa
++	BPF_SOCK_OPS_TCP_LISTEN_CB            = 0xb
++	BPF_SOCK_OPS_RTT_CB                   = 0xc
++	BPF_TCP_ESTABLISHED                   = 0x1
++	BPF_TCP_SYN_SENT                      = 0x2
++	BPF_TCP_SYN_RECV                      = 0x3
++	BPF_TCP_FIN_WAIT1                     = 0x4
++	BPF_TCP_FIN_WAIT2                     = 0x5
++	BPF_TCP_TIME_WAIT                     = 0x6
++	BPF_TCP_CLOSE                         = 0x7
++	BPF_TCP_CLOSE_WAIT                    = 0x8
++	BPF_TCP_LAST_ACK                      = 0x9
++	BPF_TCP_LISTEN                        = 0xa
++	BPF_TCP_CLOSING                       = 0xb
++	BPF_TCP_NEW_SYN_RECV                  = 0xc
++	BPF_TCP_MAX_STATES                    = 0xd
++	BPF_FIB_LKUP_RET_SUCCESS              = 0x0
++	BPF_FIB_LKUP_RET_BLACKHOLE            = 0x1
++	BPF_FIB_LKUP_RET_UNREACHABLE          = 0x2
++	BPF_FIB_LKUP_RET_PROHIBIT             = 0x3
++	BPF_FIB_LKUP_RET_NOT_FWDED            = 0x4
++	BPF_FIB_LKUP_RET_FWD_DISABLED         = 0x5
++	BPF_FIB_LKUP_RET_UNSUPP_LWT           = 0x6
++	BPF_FIB_LKUP_RET_NO_NEIGH             = 0x7
++	BPF_FIB_LKUP_RET_FRAG_NEEDED          = 0x8
++	BPF_FD_TYPE_RAW_TRACEPOINT            = 0x0
++	BPF_FD_TYPE_TRACEPOINT                = 0x1
++	BPF_FD_TYPE_KPROBE                    = 0x2
++	BPF_FD_TYPE_KRETPROBE                 = 0x3
++	BPF_FD_TYPE_UPROBE                    = 0x4
++	BPF_FD_TYPE_URETPROBE                 = 0x5
++)
++
++const (
++	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_DECnet_IFADDR = 0xd
++	RTNLGRP_NOP2          = 0xe
++	RTNLGRP_DECnet_ROUTE  = 0xf
++	RTNLGRP_DECnet_RULE   = 0x10
++	RTNLGRP_NOP4          = 0x11
++	RTNLGRP_IPV6_PREFIX   = 0x12
++	RTNLGRP_IPV6_RULE     = 0x13
++	RTNLGRP_ND_USEROPT    = 0x14
++	RTNLGRP_PHONET_IFADDR = 0x15
++	RTNLGRP_PHONET_ROUTE  = 0x16
++	RTNLGRP_DCB           = 0x17
++	RTNLGRP_IPV4_NETCONF  = 0x18
++	RTNLGRP_IPV6_NETCONF  = 0x19
++	RTNLGRP_MDB           = 0x1a
++	RTNLGRP_MPLS_ROUTE    = 0x1b
++	RTNLGRP_NSID          = 0x1c
++	RTNLGRP_MPLS_NETCONF  = 0x1d
++	RTNLGRP_IPV4_MROUTE_R = 0x1e
++	RTNLGRP_IPV6_MROUTE_R = 0x1f
++	RTNLGRP_NEXTHOP       = 0x20
++)
++
++type CapUserHeader struct {
++	Version uint32
++	Pid     int32
++}
++
++type CapUserData struct {
++	Effective   uint32
++	Permitted   uint32
++	Inheritable uint32
++}
++
++const (
++	LINUX_CAPABILITY_VERSION_1 = 0x19980330
++	LINUX_CAPABILITY_VERSION_2 = 0x20071026
++	LINUX_CAPABILITY_VERSION_3 = 0x20080522
++)
++
++const (
++	LO_FLAGS_READ_ONLY = 0x1
++	LO_FLAGS_AUTOCLEAR = 0x4
++	LO_FLAGS_PARTSCAN  = 0x8
++	LO_FLAGS_DIRECT_IO = 0x10
++)
++
++type LoopInfo64 struct {
++	Device           uint64
++	Inode            uint64
++	Rdevice          uint64
++	Offset           uint64
++	Sizelimit        uint64
++	Number           uint32
++	Encrypt_type     uint32
++	Encrypt_key_size uint32
++	Flags            uint32
++	File_name        [64]uint8
++	Crypt_name       [64]uint8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++}
++
++type TIPCSocketAddr struct {
++	Ref  uint32
++	Node uint32
++}
++
++type TIPCServiceRange struct {
++	Type  uint32
++	Lower uint32
++	Upper uint32
++}
++
++type TIPCServiceName struct {
++	Type     uint32
++	Instance uint32
++	Domain   uint32
++}
++
++type TIPCEvent struct {
++	Event uint32
++	Lower uint32
++	Upper uint32
++	Port  TIPCSocketAddr
++	S     TIPCSubscr
++}
++
++type TIPCGroupReq struct {
++	Type     uint32
++	Instance uint32
++	Scope    uint32
++	Flags    uint32
++}
++
++const (
++	TIPC_CLUSTER_SCOPE = 0x2
++	TIPC_NODE_SCOPE    = 0x3
++)
++
++const (
++	SYSLOG_ACTION_CLOSE         = 0
++	SYSLOG_ACTION_OPEN          = 1
++	SYSLOG_ACTION_READ          = 2
++	SYSLOG_ACTION_READ_ALL      = 3
++	SYSLOG_ACTION_READ_CLEAR    = 4
++	SYSLOG_ACTION_CLEAR         = 5
++	SYSLOG_ACTION_CONSOLE_OFF   = 6
++	SYSLOG_ACTION_CONSOLE_ON    = 7
++	SYSLOG_ACTION_CONSOLE_LEVEL = 8
++	SYSLOG_ACTION_SIZE_UNREAD   = 9
++	SYSLOG_ACTION_SIZE_BUFFER   = 10
++)
++
++const (
++	DEVLINK_CMD_UNSPEC                        = 0x0
++	DEVLINK_CMD_GET                           = 0x1
++	DEVLINK_CMD_SET                           = 0x2
++	DEVLINK_CMD_NEW                           = 0x3
++	DEVLINK_CMD_DEL                           = 0x4
++	DEVLINK_CMD_PORT_GET                      = 0x5
++	DEVLINK_CMD_PORT_SET                      = 0x6
++	DEVLINK_CMD_PORT_NEW                      = 0x7
++	DEVLINK_CMD_PORT_DEL                      = 0x8
++	DEVLINK_CMD_PORT_SPLIT                    = 0x9
++	DEVLINK_CMD_PORT_UNSPLIT                  = 0xa
++	DEVLINK_CMD_SB_GET                        = 0xb
++	DEVLINK_CMD_SB_SET                        = 0xc
++	DEVLINK_CMD_SB_NEW                        = 0xd
++	DEVLINK_CMD_SB_DEL                        = 0xe
++	DEVLINK_CMD_SB_POOL_GET                   = 0xf
++	DEVLINK_CMD_SB_POOL_SET                   = 0x10
++	DEVLINK_CMD_SB_POOL_NEW                   = 0x11
++	DEVLINK_CMD_SB_POOL_DEL                   = 0x12
++	DEVLINK_CMD_SB_PORT_POOL_GET              = 0x13
++	DEVLINK_CMD_SB_PORT_POOL_SET              = 0x14
++	DEVLINK_CMD_SB_PORT_POOL_NEW              = 0x15
++	DEVLINK_CMD_SB_PORT_POOL_DEL              = 0x16
++	DEVLINK_CMD_SB_TC_POOL_BIND_GET           = 0x17
++	DEVLINK_CMD_SB_TC_POOL_BIND_SET           = 0x18
++	DEVLINK_CMD_SB_TC_POOL_BIND_NEW           = 0x19
++	DEVLINK_CMD_SB_TC_POOL_BIND_DEL           = 0x1a
++	DEVLINK_CMD_SB_OCC_SNAPSHOT               = 0x1b
++	DEVLINK_CMD_SB_OCC_MAX_CLEAR              = 0x1c
++	DEVLINK_CMD_ESWITCH_GET                   = 0x1d
++	DEVLINK_CMD_ESWITCH_SET                   = 0x1e
++	DEVLINK_CMD_DPIPE_TABLE_GET               = 0x1f
++	DEVLINK_CMD_DPIPE_ENTRIES_GET             = 0x20
++	DEVLINK_CMD_DPIPE_HEADERS_GET             = 0x21
++	DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET      = 0x22
++	DEVLINK_CMD_MAX                           = 0x44
++	DEVLINK_PORT_TYPE_NOTSET                  = 0x0
++	DEVLINK_PORT_TYPE_AUTO                    = 0x1
++	DEVLINK_PORT_TYPE_ETH                     = 0x2
++	DEVLINK_PORT_TYPE_IB                      = 0x3
++	DEVLINK_SB_POOL_TYPE_INGRESS              = 0x0
++	DEVLINK_SB_POOL_TYPE_EGRESS               = 0x1
++	DEVLINK_SB_THRESHOLD_TYPE_STATIC          = 0x0
++	DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC         = 0x1
++	DEVLINK_ESWITCH_MODE_LEGACY               = 0x0
++	DEVLINK_ESWITCH_MODE_SWITCHDEV            = 0x1
++	DEVLINK_ESWITCH_INLINE_MODE_NONE          = 0x0
++	DEVLINK_ESWITCH_INLINE_MODE_LINK          = 0x1
++	DEVLINK_ESWITCH_INLINE_MODE_NETWORK       = 0x2
++	DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT     = 0x3
++	DEVLINK_ESWITCH_ENCAP_MODE_NONE           = 0x0
++	DEVLINK_ESWITCH_ENCAP_MODE_BASIC          = 0x1
++	DEVLINK_ATTR_UNSPEC                       = 0x0
++	DEVLINK_ATTR_BUS_NAME                     = 0x1
++	DEVLINK_ATTR_DEV_NAME                     = 0x2
++	DEVLINK_ATTR_PORT_INDEX                   = 0x3
++	DEVLINK_ATTR_PORT_TYPE                    = 0x4
++	DEVLINK_ATTR_PORT_DESIRED_TYPE            = 0x5
++	DEVLINK_ATTR_PORT_NETDEV_IFINDEX          = 0x6
++	DEVLINK_ATTR_PORT_NETDEV_NAME             = 0x7
++	DEVLINK_ATTR_PORT_IBDEV_NAME              = 0x8
++	DEVLINK_ATTR_PORT_SPLIT_COUNT             = 0x9
++	DEVLINK_ATTR_PORT_SPLIT_GROUP             = 0xa
++	DEVLINK_ATTR_SB_INDEX                     = 0xb
++	DEVLINK_ATTR_SB_SIZE                      = 0xc
++	DEVLINK_ATTR_SB_INGRESS_POOL_COUNT        = 0xd
++	DEVLINK_ATTR_SB_EGRESS_POOL_COUNT         = 0xe
++	DEVLINK_ATTR_SB_INGRESS_TC_COUNT          = 0xf
++	DEVLINK_ATTR_SB_EGRESS_TC_COUNT           = 0x10
++	DEVLINK_ATTR_SB_POOL_INDEX                = 0x11
++	DEVLINK_ATTR_SB_POOL_TYPE                 = 0x12
++	DEVLINK_ATTR_SB_POOL_SIZE                 = 0x13
++	DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE       = 0x14
++	DEVLINK_ATTR_SB_THRESHOLD                 = 0x15
++	DEVLINK_ATTR_SB_TC_INDEX                  = 0x16
++	DEVLINK_ATTR_SB_OCC_CUR                   = 0x17
++	DEVLINK_ATTR_SB_OCC_MAX                   = 0x18
++	DEVLINK_ATTR_ESWITCH_MODE                 = 0x19
++	DEVLINK_ATTR_ESWITCH_INLINE_MODE          = 0x1a
++	DEVLINK_ATTR_DPIPE_TABLES                 = 0x1b
++	DEVLINK_ATTR_DPIPE_TABLE                  = 0x1c
++	DEVLINK_ATTR_DPIPE_TABLE_NAME             = 0x1d
++	DEVLINK_ATTR_DPIPE_TABLE_SIZE             = 0x1e
++	DEVLINK_ATTR_DPIPE_TABLE_MATCHES          = 0x1f
++	DEVLINK_ATTR_DPIPE_TABLE_ACTIONS          = 0x20
++	DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21
++	DEVLINK_ATTR_DPIPE_ENTRIES                = 0x22
++	DEVLINK_ATTR_DPIPE_ENTRY                  = 0x23
++	DEVLINK_ATTR_DPIPE_ENTRY_INDEX            = 0x24
++	DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES     = 0x25
++	DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES    = 0x26
++	DEVLINK_ATTR_DPIPE_ENTRY_COUNTER          = 0x27
++	DEVLINK_ATTR_DPIPE_MATCH                  = 0x28
++	DEVLINK_ATTR_DPIPE_MATCH_VALUE            = 0x29
++	DEVLINK_ATTR_DPIPE_MATCH_TYPE             = 0x2a
++	DEVLINK_ATTR_DPIPE_ACTION                 = 0x2b
++	DEVLINK_ATTR_DPIPE_ACTION_VALUE           = 0x2c
++	DEVLINK_ATTR_DPIPE_ACTION_TYPE            = 0x2d
++	DEVLINK_ATTR_DPIPE_VALUE                  = 0x2e
++	DEVLINK_ATTR_DPIPE_VALUE_MASK             = 0x2f
++	DEVLINK_ATTR_DPIPE_VALUE_MAPPING          = 0x30
++	DEVLINK_ATTR_DPIPE_HEADERS                = 0x31
++	DEVLINK_ATTR_DPIPE_HEADER                 = 0x32
++	DEVLINK_ATTR_DPIPE_HEADER_NAME            = 0x33
++	DEVLINK_ATTR_DPIPE_HEADER_ID              = 0x34
++	DEVLINK_ATTR_DPIPE_HEADER_FIELDS          = 0x35
++	DEVLINK_ATTR_DPIPE_HEADER_GLOBAL          = 0x36
++	DEVLINK_ATTR_DPIPE_HEADER_INDEX           = 0x37
++	DEVLINK_ATTR_DPIPE_FIELD                  = 0x38
++	DEVLINK_ATTR_DPIPE_FIELD_NAME             = 0x39
++	DEVLINK_ATTR_DPIPE_FIELD_ID               = 0x3a
++	DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH         = 0x3b
++	DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE     = 0x3c
++	DEVLINK_ATTR_PAD                          = 0x3d
++	DEVLINK_ATTR_ESWITCH_ENCAP_MODE           = 0x3e
++	DEVLINK_ATTR_MAX                          = 0x8c
++	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE     = 0x0
++	DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX  = 0x1
++	DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT      = 0x0
++	DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY    = 0x0
++	DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC      = 0x0
++	DEVLINK_DPIPE_FIELD_IPV4_DST_IP           = 0x0
++	DEVLINK_DPIPE_FIELD_IPV6_DST_IP           = 0x0
++	DEVLINK_DPIPE_HEADER_ETHERNET             = 0x0
++	DEVLINK_DPIPE_HEADER_IPV4                 = 0x1
++	DEVLINK_DPIPE_HEADER_IPV6                 = 0x2
++)
++
++type FsverityDigest struct {
++	Algorithm uint16
++	Size      uint16
++}
++
++type FsverityEnableArg struct {
++	Version        uint32
++	Hash_algorithm uint32
++	Block_size     uint32
++	Salt_size      uint32
++	Salt_ptr       uint64
++	Sig_size       uint32
++	_              uint32
++	Sig_ptr        uint64
++	_              [11]uint64
++}
++
++type Nhmsg struct {
++	Family   uint8
++	Scope    uint8
++	Protocol uint8
++	Resvd    uint8
++	Flags    uint32
++}
++
++type NexthopGrp struct {
++	Id     uint32
++	Weight uint8
++	Resvd1 uint8
++	Resvd2 uint16
++}
++
++const (
++	NHA_UNSPEC     = 0x0
++	NHA_ID         = 0x1
++	NHA_GROUP      = 0x2
++	NHA_GROUP_TYPE = 0x3
++	NHA_BLACKHOLE  = 0x4
++	NHA_OIF        = 0x5
++	NHA_GATEWAY    = 0x6
++	NHA_ENCAP_TYPE = 0x7
++	NHA_ENCAP      = 0x8
++	NHA_GROUPS     = 0x9
++	NHA_MASTER     = 0xa
++)
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+index 7b36896e..761b67c8 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x4
++	SizeofLong = 0x4
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int32
+-	_C_long_long int64
++	_C_long int32
+ )
+ 
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ 	Errcnt    int32
+ 	Stbcnt    int32
+ 	Tai       int32
+-	Pad_cgo_0 [44]byte
++	_         [44]byte
+ }
+ 
+ type Time_t int32
+@@ -88,60 +81,32 @@ type Rusage struct {
+ 	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
++	Dev     uint64
++	_       uint16
++	_       uint32
++	Mode    uint32
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint64
++	_       uint16
++	Size    int64
++	Blksize int32
++	Blocks  int64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Ino     uint64
+ }
+ 
+ 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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [1]byte
+ }
+ 
+ type Flock_t struct {
+@@ -152,101 +117,11 @@ type Flock_t struct {
+ 	Pid    int32
+ }
+ 
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
+-}
+-
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -257,41 +132,11 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+@@ -308,277 +153,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x8
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x1c
+-	SizeofCmsghdr           = 0xc
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x8
++	SizeofMsghdr  = 0x1c
++	SizeofCmsghdr = 0xc
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 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 {
+ 	Ebx      int32
+ 	Ecx      int32
+@@ -617,16 +201,7 @@ type Sysinfo_t struct {
+ 	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
++	_         [8]int8
+ }
+ 
+ type Ustat_t struct {
+@@ -643,37 +218,14 @@ type EpollEvent struct {
+ }
+ 
+ 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
++	Val [32]uint32
+ }
+ 
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -686,20 +238,12 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
++	_                         [4]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -711,13 +255,13 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
++	_                         [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -741,55 +285,315 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
++}
++
++type cpuMask uint32
++
++const (
++	_NCPUBITS = 0x20
++)
++
++const (
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [122]int8
++	_      uint32
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint32
++}
++
++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 TpacketHdr struct {
++	Status  uint32
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
+ }
+ 
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	SizeofTpacketHdr = 0x18
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int32
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	BLKPG = 0x1269
+ )
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint16
++	Inode            uint32
++	Rdevice          uint16
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint32
++	Reserved         [4]int8
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+index e54fa984..201fb348 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,14 +39,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint64
+ 	Ino     uint64
+@@ -105,7 +88,7 @@ type Stat_t struct {
+ 	Mode    uint32
+ 	Uid     uint32
+ 	Gid     uint32
+-	X__pad0 int32
++	_       int32
+ 	Rdev    uint64
+ 	Size    int64
+ 	Blksize int64
+@@ -116,139 +99,29 @@ type Stat_t struct {
+ 	_       [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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -259,51 +132,20 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ 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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -312,277 +154,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x38
+-	SizeofCmsghdr           = 0x10
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 0x10
+ )
+ 
+-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 {
+ 	R15      uint64
+ 	R14      uint64
+@@ -628,30 +209,19 @@ type Sysinfo_t struct {
+ 	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
++	_         [0]int8
++	_         [4]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int32
+-	Pad_cgo_0 [4]byte
+-	Tinode    uint64
+-	Fname     [6]int8
+-	Fpack     [6]int8
+-	Pad_cgo_1 [4]byte
++	Tfree  int32
++	Tinode uint64
++	Fname  [6]int8
++	Fpack  [6]int8
++	_      [4]byte
+ }
+ 
+ type EpollEvent struct {
+@@ -661,37 +231,14 @@ type EpollEvent struct {
+ }
+ 
+ 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
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -704,20 +251,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -729,13 +267,12 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -759,55 +296,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint64
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	_NCPUBITS = 0x40
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++const (
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]int8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x1269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint64
++	Inode            uint64
++	Rdevice          uint64
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]int8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+index bff6ce25..8051b561 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x4
++	SizeofLong = 0x4
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int32
+-	_C_long_long int64
++	_C_long int32
+ )
+ 
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ 	Errcnt    int32
+ 	Stbcnt    int32
+ 	Tai       int32
+-	Pad_cgo_0 [44]byte
++	_         [44]byte
+ }
+ 
+ type Time_t int32
+@@ -88,169 +81,51 @@ type Rusage struct {
+ 	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
++	Dev     uint64
++	_       uint16
++	_       uint32
++	Mode    uint32
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint64
++	_       uint16
++	_       [4]byte
++	Size    int64
++	Blksize int32
++	_       [4]byte
++	Blocks  int64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Ino     uint64
+ }
+ 
+ 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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]uint8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	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   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -261,41 +136,11 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+@@ -312,277 +157,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x8
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x1c
+-	SizeofCmsghdr           = 0xc
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x8
++	SizeofMsghdr  = 0x1c
++	SizeofCmsghdr = 0xc
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 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 {
+ 	Uregs [18]uint32
+ }
+@@ -605,16 +189,7 @@ type Sysinfo_t struct {
+ 	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
++	_         [8]uint8
+ }
+ 
+ type Ustat_t struct {
+@@ -632,37 +207,14 @@ type EpollEvent struct {
+ }
+ 
+ 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
++	Val [32]uint32
+ }
+ 
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -675,20 +227,12 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
++	_                         [4]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -700,13 +244,13 @@ type Taskstats struct {
+ 	Ac_comm                   [32]uint8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
++	_                         [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -730,55 +274,318 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint32
++
++const (
++	_NCPUBITS = 0x20
++)
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++type SockaddrStorage struct {
++	Family uint16
++	_      [122]uint8
++	_      uint32
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint32
++}
++
++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
++	_       [4]byte
++}
++
++type TpacketHdr struct {
++	Status  uint32
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++}
++
++const (
++	SizeofTpacketHdr = 0x18
++)
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int32
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	BLKPG = 0x1269
+ )
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]uint8
++	Driver_name [64]uint8
++	Module_name [64]uint8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]uint8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]uint8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]uint8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]uint8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportHash struct {
++	Type       [64]uint8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]uint8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++	Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]uint8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint16
++	Inode            uint32
++	Rdevice          uint16
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]uint8
++	Encrypt_key      [32]uint8
++	Init             [2]uint32
++	Reserved         [4]uint8
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+index a3d0cc4a..a936f216 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,14 +39,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint64
+ 	Ino     uint64
+@@ -106,10 +89,10 @@ type Stat_t struct {
+ 	Uid     uint32
+ 	Gid     uint32
+ 	Rdev    uint64
+-	X__pad1 uint64
++	_       uint64
+ 	Size    int64
+ 	Blksize int32
+-	X__pad2 int32
++	_       int32
+ 	Blocks  int64
+ 	Atim    Timespec
+ 	Mtim    Timespec
+@@ -117,139 +100,29 @@ type Stat_t struct {
+ 	_       [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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -260,51 +133,20 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ 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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -313,277 +155,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x38
+-	SizeofCmsghdr           = 0x10
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 0x10
+ )
+ 
+-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   [31]uint64
+ 	Sp     uint64
+@@ -606,30 +187,19 @@ type Sysinfo_t struct {
+ 	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
++	_         [0]int8
++	_         [4]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int32
+-	Pad_cgo_0 [4]byte
+-	Tinode    uint64
+-	Fname     [6]int8
+-	Fpack     [6]int8
+-	Pad_cgo_1 [4]byte
++	Tfree  int32
++	Tinode uint64
++	Fname  [6]int8
++	Fpack  [6]int8
++	_      [4]byte
+ }
+ 
+ type EpollEvent struct {
+@@ -640,37 +210,14 @@ type EpollEvent struct {
+ }
+ 
+ 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
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -683,20 +230,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -708,13 +246,12 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -738,55 +275,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint64
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	_NCPUBITS = 0x40
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++const (
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]int8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x1269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint64
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]int8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+index 8fa6603f..aaca03dd 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x4
++	SizeofLong = 0x4
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int32
+-	_C_long_long int64
++	_C_long int32
+ )
+ 
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ 	Errcnt    int32
+ 	Stbcnt    int32
+ 	Tai       int32
+-	Pad_cgo_0 [44]byte
++	_         [44]byte
+ }
+ 
+ type Time_t int32
+@@ -88,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int32
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint32
+ 	Pad1    [3]int32
+@@ -115,141 +101,30 @@ type Stat_t struct {
+ 	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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	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   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -260,41 +135,11 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+@@ -311,277 +156,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x8
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x1c
+-	SizeofCmsghdr           = 0xc
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x8
++	SizeofMsghdr  = 0x1c
++	SizeofCmsghdr = 0xc
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 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     [32]uint64
+ 	Lo       uint64
+@@ -610,16 +194,7 @@ type Sysinfo_t struct {
+ 	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
++	_         [8]int8
+ }
+ 
+ type Ustat_t struct {
+@@ -637,37 +212,14 @@ type EpollEvent struct {
+ }
+ 
+ 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
++	Val [32]uint32
+ }
+ 
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -680,20 +232,12 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
++	_                         [4]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -705,13 +249,13 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
++	_                         [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -735,55 +279,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint32
++
++const (
++	_NCPUBITS = 0x20
++)
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	CBitFieldMaskBit0  = 0x8000000000000000
++	CBitFieldMaskBit1  = 0x4000000000000000
++	CBitFieldMaskBit2  = 0x2000000000000000
++	CBitFieldMaskBit3  = 0x1000000000000000
++	CBitFieldMaskBit4  = 0x800000000000000
++	CBitFieldMaskBit5  = 0x400000000000000
++	CBitFieldMaskBit6  = 0x200000000000000
++	CBitFieldMaskBit7  = 0x100000000000000
++	CBitFieldMaskBit8  = 0x80000000000000
++	CBitFieldMaskBit9  = 0x40000000000000
++	CBitFieldMaskBit10 = 0x20000000000000
++	CBitFieldMaskBit11 = 0x10000000000000
++	CBitFieldMaskBit12 = 0x8000000000000
++	CBitFieldMaskBit13 = 0x4000000000000
++	CBitFieldMaskBit14 = 0x2000000000000
++	CBitFieldMaskBit15 = 0x1000000000000
++	CBitFieldMaskBit16 = 0x800000000000
++	CBitFieldMaskBit17 = 0x400000000000
++	CBitFieldMaskBit18 = 0x200000000000
++	CBitFieldMaskBit19 = 0x100000000000
++	CBitFieldMaskBit20 = 0x80000000000
++	CBitFieldMaskBit21 = 0x40000000000
++	CBitFieldMaskBit22 = 0x20000000000
++	CBitFieldMaskBit23 = 0x10000000000
++	CBitFieldMaskBit24 = 0x8000000000
++	CBitFieldMaskBit25 = 0x4000000000
++	CBitFieldMaskBit26 = 0x2000000000
++	CBitFieldMaskBit27 = 0x1000000000
++	CBitFieldMaskBit28 = 0x800000000
++	CBitFieldMaskBit29 = 0x400000000
++	CBitFieldMaskBit30 = 0x200000000
++	CBitFieldMaskBit31 = 0x100000000
++	CBitFieldMaskBit32 = 0x80000000
++	CBitFieldMaskBit33 = 0x40000000
++	CBitFieldMaskBit34 = 0x20000000
++	CBitFieldMaskBit35 = 0x10000000
++	CBitFieldMaskBit36 = 0x8000000
++	CBitFieldMaskBit37 = 0x4000000
++	CBitFieldMaskBit38 = 0x2000000
++	CBitFieldMaskBit39 = 0x1000000
++	CBitFieldMaskBit40 = 0x800000
++	CBitFieldMaskBit41 = 0x400000
++	CBitFieldMaskBit42 = 0x200000
++	CBitFieldMaskBit43 = 0x100000
++	CBitFieldMaskBit44 = 0x80000
++	CBitFieldMaskBit45 = 0x40000
++	CBitFieldMaskBit46 = 0x20000
++	CBitFieldMaskBit47 = 0x10000
++	CBitFieldMaskBit48 = 0x8000
++	CBitFieldMaskBit49 = 0x4000
++	CBitFieldMaskBit50 = 0x2000
++	CBitFieldMaskBit51 = 0x1000
++	CBitFieldMaskBit52 = 0x800
++	CBitFieldMaskBit53 = 0x400
++	CBitFieldMaskBit54 = 0x200
++	CBitFieldMaskBit55 = 0x100
++	CBitFieldMaskBit56 = 0x80
++	CBitFieldMaskBit57 = 0x40
++	CBitFieldMaskBit58 = 0x20
++	CBitFieldMaskBit59 = 0x10
++	CBitFieldMaskBit60 = 0x8
++	CBitFieldMaskBit61 = 0x4
++	CBitFieldMaskBit62 = 0x2
++	CBitFieldMaskBit63 = 0x1
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++type SockaddrStorage struct {
++	Family uint16
++	_      [122]int8
++	_      uint32
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint32
++}
++
++type Statfs_t struct {
++	Type    int32
++	Bsize   int32
++	Frsize  int32
++	_       [4]byte
++	Blocks  uint64
++	Bfree   uint64
++	Files   uint64
++	Ffree   uint64
++	Bavail  uint64
++	Fsid    Fsid
++	Namelen int32
++	Flags   int32
++	Spare   [5]int32
++	_       [4]byte
++}
++
++type TpacketHdr struct {
++	Status  uint32
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++}
++
++const (
++	SizeofTpacketHdr = 0x18
++)
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int32
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	BLKPG = 0x20001269
+ )
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint32
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint32
++	Reserved         [4]int8
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+index 3e5fc625..2e7f3b8c 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,14 +39,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint32
+ 	Pad1    [3]uint32
+@@ -117,139 +100,29 @@ type Stat_t struct {
+ 	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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -260,51 +133,20 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ 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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -313,277 +155,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x38
+-	SizeofCmsghdr           = 0x10
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 0x10
+ )
+ 
+-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     [32]uint64
+ 	Lo       uint64
+@@ -609,70 +190,37 @@ type Sysinfo_t struct {
+ 	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
++	_         [0]int8
++	_         [4]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int32
+-	Pad_cgo_0 [4]byte
+-	Tinode    uint64
+-	Fname     [6]int8
+-	Fpack     [6]int8
+-	Pad_cgo_1 [4]byte
++	Tfree  int32
++	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
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -685,20 +233,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -710,13 +249,12 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -740,55 +278,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint64
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	_NCPUBITS = 0x40
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++const (
++	CBitFieldMaskBit0  = 0x8000000000000000
++	CBitFieldMaskBit1  = 0x4000000000000000
++	CBitFieldMaskBit2  = 0x2000000000000000
++	CBitFieldMaskBit3  = 0x1000000000000000
++	CBitFieldMaskBit4  = 0x800000000000000
++	CBitFieldMaskBit5  = 0x400000000000000
++	CBitFieldMaskBit6  = 0x200000000000000
++	CBitFieldMaskBit7  = 0x100000000000000
++	CBitFieldMaskBit8  = 0x80000000000000
++	CBitFieldMaskBit9  = 0x40000000000000
++	CBitFieldMaskBit10 = 0x20000000000000
++	CBitFieldMaskBit11 = 0x10000000000000
++	CBitFieldMaskBit12 = 0x8000000000000
++	CBitFieldMaskBit13 = 0x4000000000000
++	CBitFieldMaskBit14 = 0x2000000000000
++	CBitFieldMaskBit15 = 0x1000000000000
++	CBitFieldMaskBit16 = 0x800000000000
++	CBitFieldMaskBit17 = 0x400000000000
++	CBitFieldMaskBit18 = 0x200000000000
++	CBitFieldMaskBit19 = 0x100000000000
++	CBitFieldMaskBit20 = 0x80000000000
++	CBitFieldMaskBit21 = 0x40000000000
++	CBitFieldMaskBit22 = 0x20000000000
++	CBitFieldMaskBit23 = 0x10000000000
++	CBitFieldMaskBit24 = 0x8000000000
++	CBitFieldMaskBit25 = 0x4000000000
++	CBitFieldMaskBit26 = 0x2000000000
++	CBitFieldMaskBit27 = 0x1000000000
++	CBitFieldMaskBit28 = 0x800000000
++	CBitFieldMaskBit29 = 0x400000000
++	CBitFieldMaskBit30 = 0x200000000
++	CBitFieldMaskBit31 = 0x100000000
++	CBitFieldMaskBit32 = 0x80000000
++	CBitFieldMaskBit33 = 0x40000000
++	CBitFieldMaskBit34 = 0x20000000
++	CBitFieldMaskBit35 = 0x10000000
++	CBitFieldMaskBit36 = 0x8000000
++	CBitFieldMaskBit37 = 0x4000000
++	CBitFieldMaskBit38 = 0x2000000
++	CBitFieldMaskBit39 = 0x1000000
++	CBitFieldMaskBit40 = 0x800000
++	CBitFieldMaskBit41 = 0x400000
++	CBitFieldMaskBit42 = 0x200000
++	CBitFieldMaskBit43 = 0x100000
++	CBitFieldMaskBit44 = 0x80000
++	CBitFieldMaskBit45 = 0x40000
++	CBitFieldMaskBit46 = 0x20000
++	CBitFieldMaskBit47 = 0x10000
++	CBitFieldMaskBit48 = 0x8000
++	CBitFieldMaskBit49 = 0x4000
++	CBitFieldMaskBit50 = 0x2000
++	CBitFieldMaskBit51 = 0x1000
++	CBitFieldMaskBit52 = 0x800
++	CBitFieldMaskBit53 = 0x400
++	CBitFieldMaskBit54 = 0x200
++	CBitFieldMaskBit55 = 0x100
++	CBitFieldMaskBit56 = 0x80
++	CBitFieldMaskBit57 = 0x40
++	CBitFieldMaskBit58 = 0x20
++	CBitFieldMaskBit59 = 0x10
++	CBitFieldMaskBit60 = 0x8
++	CBitFieldMaskBit61 = 0x4
++	CBitFieldMaskBit62 = 0x2
++	CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]int8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint64
++}
++
++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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint64
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]int8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+index f9bd1ab0..16add5a2 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,14 +39,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint32
+ 	Pad1    [3]uint32
+@@ -117,139 +100,29 @@ type Stat_t struct {
+ 	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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -260,51 +133,20 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ 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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -313,277 +155,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x38
+-	SizeofCmsghdr           = 0x10
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 0x10
+ )
+ 
+-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     [32]uint64
+ 	Lo       uint64
+@@ -609,70 +190,37 @@ type Sysinfo_t struct {
+ 	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
++	_         [0]int8
++	_         [4]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int32
+-	Pad_cgo_0 [4]byte
+-	Tinode    uint64
+-	Fname     [6]int8
+-	Fpack     [6]int8
+-	Pad_cgo_1 [4]byte
++	Tfree  int32
++	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
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -685,20 +233,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -710,13 +249,12 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -740,55 +278,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint64
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	_NCPUBITS = 0x40
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++const (
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]int8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint64
++}
++
++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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint64
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]int8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+index 74c54213..4ed2c8e5 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x4
++	SizeofLong = 0x4
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int32
+-	_C_long_long int64
++	_C_long int32
+ )
+ 
+ type Timespec struct {
+@@ -52,7 +45,7 @@ type Timex struct {
+ 	Errcnt    int32
+ 	Stbcnt    int32
+ 	Tai       int32
+-	Pad_cgo_0 [44]byte
++	_         [44]byte
+ }
+ 
+ type Time_t int32
+@@ -88,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int32
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint32
+ 	Pad1    [3]int32
+@@ -115,141 +101,30 @@ type Stat_t struct {
+ 	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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	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   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -260,41 +135,11 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+@@ -311,277 +156,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x8
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x1c
+-	SizeofCmsghdr           = 0xc
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x8
++	SizeofMsghdr  = 0x1c
++	SizeofCmsghdr = 0xc
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 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     [32]uint64
+ 	Lo       uint64
+@@ -610,16 +194,7 @@ type Sysinfo_t struct {
+ 	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
++	_         [8]int8
+ }
+ 
+ type Ustat_t struct {
+@@ -637,37 +212,14 @@ type EpollEvent struct {
+ }
+ 
+ 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
++	Val [32]uint32
+ }
+ 
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x80
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -680,20 +232,12 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
++	_                         [4]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -705,13 +249,13 @@ type Taskstats struct {
+ 	Ac_comm                   [32]int8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
++	_                         [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -735,55 +279,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint32
++
++const (
++	_NCPUBITS = 0x20
++)
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++type SockaddrStorage struct {
++	Family uint16
++	_      [122]int8
++	_      uint32
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint32
++}
++
++type Statfs_t struct {
++	Type    int32
++	Bsize   int32
++	Frsize  int32
++	_       [4]byte
++	Blocks  uint64
++	Bfree   uint64
++	Files   uint64
++	Ffree   uint64
++	Bavail  uint64
++	Fsid    Fsid
++	Namelen int32
++	Flags   int32
++	Spare   [5]int32
++	_       [4]byte
++}
++
++type TpacketHdr struct {
++	Status  uint32
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++}
++
++const (
++	SizeofTpacketHdr = 0x18
++)
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int32
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	BLKPG = 0x20001269
+ )
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint32
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint32
++	Reserved         [4]int8
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+index 2b0b18e9..74151909 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,14 +39,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint64
+ 	Ino     uint64
+@@ -105,7 +88,7 @@ type Stat_t struct {
+ 	Mode    uint32
+ 	Uid     uint32
+ 	Gid     uint32
+-	X__pad2 int32
++	_       int32
+ 	Rdev    uint64
+ 	Size    int64
+ 	Blksize int64
+@@ -118,139 +101,29 @@ type Stat_t struct {
+ 	_       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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]uint8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -261,51 +134,20 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ 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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -314,277 +156,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x38
+-	SizeofCmsghdr           = 0x10
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 0x10
+ )
+ 
+-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 {
+ 	Gpr       [32]uint64
+ 	Nip       uint64
+@@ -616,71 +197,37 @@ type Sysinfo_t struct {
+ 	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
++	_         [0]uint8
++	_         [4]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int32
+-	Pad_cgo_0 [4]byte
+-	Tinode    uint64
+-	Fname     [6]uint8
+-	Fpack     [6]uint8
+-	Pad_cgo_1 [4]byte
++	Tfree  int32
++	Tinode uint64
++	Fname  [6]uint8
++	Fpack  [6]uint8
++	_      [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
++	Events uint32
++	_      int32
++	Fd     int32
++	Pad    int32
+ }
+ 
+ const (
+-	POLLIN    = 0x1
+-	POLLPRI   = 0x2
+-	POLLOUT   = 0x4
+ 	POLLRDHUP = 0x2000
+-	POLLERR   = 0x8
+-	POLLHUP   = 0x10
+-	POLLNVAL  = 0x20
+ )
+ 
+ type Sigset_t struct {
+-	X__val [16]uint64
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -693,20 +240,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -718,13 +256,12 @@ type Taskstats struct {
+ 	Ac_comm                   [32]uint8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -748,55 +285,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint64
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	_NCPUBITS = 0x40
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++const (
++	CBitFieldMaskBit0  = 0x8000000000000000
++	CBitFieldMaskBit1  = 0x4000000000000000
++	CBitFieldMaskBit2  = 0x2000000000000000
++	CBitFieldMaskBit3  = 0x1000000000000000
++	CBitFieldMaskBit4  = 0x800000000000000
++	CBitFieldMaskBit5  = 0x400000000000000
++	CBitFieldMaskBit6  = 0x200000000000000
++	CBitFieldMaskBit7  = 0x100000000000000
++	CBitFieldMaskBit8  = 0x80000000000000
++	CBitFieldMaskBit9  = 0x40000000000000
++	CBitFieldMaskBit10 = 0x20000000000000
++	CBitFieldMaskBit11 = 0x10000000000000
++	CBitFieldMaskBit12 = 0x8000000000000
++	CBitFieldMaskBit13 = 0x4000000000000
++	CBitFieldMaskBit14 = 0x2000000000000
++	CBitFieldMaskBit15 = 0x1000000000000
++	CBitFieldMaskBit16 = 0x800000000000
++	CBitFieldMaskBit17 = 0x400000000000
++	CBitFieldMaskBit18 = 0x200000000000
++	CBitFieldMaskBit19 = 0x100000000000
++	CBitFieldMaskBit20 = 0x80000000000
++	CBitFieldMaskBit21 = 0x40000000000
++	CBitFieldMaskBit22 = 0x20000000000
++	CBitFieldMaskBit23 = 0x10000000000
++	CBitFieldMaskBit24 = 0x8000000000
++	CBitFieldMaskBit25 = 0x4000000000
++	CBitFieldMaskBit26 = 0x2000000000
++	CBitFieldMaskBit27 = 0x1000000000
++	CBitFieldMaskBit28 = 0x800000000
++	CBitFieldMaskBit29 = 0x400000000
++	CBitFieldMaskBit30 = 0x200000000
++	CBitFieldMaskBit31 = 0x100000000
++	CBitFieldMaskBit32 = 0x80000000
++	CBitFieldMaskBit33 = 0x40000000
++	CBitFieldMaskBit34 = 0x20000000
++	CBitFieldMaskBit35 = 0x10000000
++	CBitFieldMaskBit36 = 0x8000000
++	CBitFieldMaskBit37 = 0x4000000
++	CBitFieldMaskBit38 = 0x2000000
++	CBitFieldMaskBit39 = 0x1000000
++	CBitFieldMaskBit40 = 0x800000
++	CBitFieldMaskBit41 = 0x400000
++	CBitFieldMaskBit42 = 0x200000
++	CBitFieldMaskBit43 = 0x100000
++	CBitFieldMaskBit44 = 0x80000
++	CBitFieldMaskBit45 = 0x40000
++	CBitFieldMaskBit46 = 0x20000
++	CBitFieldMaskBit47 = 0x10000
++	CBitFieldMaskBit48 = 0x8000
++	CBitFieldMaskBit49 = 0x4000
++	CBitFieldMaskBit50 = 0x2000
++	CBitFieldMaskBit51 = 0x1000
++	CBitFieldMaskBit52 = 0x800
++	CBitFieldMaskBit53 = 0x400
++	CBitFieldMaskBit54 = 0x200
++	CBitFieldMaskBit55 = 0x100
++	CBitFieldMaskBit56 = 0x80
++	CBitFieldMaskBit57 = 0x40
++	CBitFieldMaskBit58 = 0x20
++	CBitFieldMaskBit59 = 0x10
++	CBitFieldMaskBit60 = 0x8
++	CBitFieldMaskBit61 = 0x4
++	CBitFieldMaskBit62 = 0x2
++	CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]uint8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]uint8
++	Driver_name [64]uint8
++	Module_name [64]uint8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]uint8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]uint8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]uint8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]uint8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportHash struct {
++	Type       [64]uint8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]uint8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++	Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]uint8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint64
++	Inode            uint64
++	Rdevice          uint64
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]uint8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]uint8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+index b2b59992..046c2deb 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,14 +39,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint64
+ 	Ino     uint64
+@@ -105,7 +88,7 @@ type Stat_t struct {
+ 	Mode    uint32
+ 	Uid     uint32
+ 	Gid     uint32
+-	X__pad2 int32
++	_       int32
+ 	Rdev    uint64
+ 	Size    int64
+ 	Blksize int64
+@@ -118,139 +101,29 @@ type Stat_t struct {
+ 	_       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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]uint8
++	_      [5]byte
+ }
+ 
+ type Flock_t struct {
+-	Type      int16
+-	Whence    int16
+-	Pad_cgo_0 [4]byte
+-	Start     int64
+-	Len       int64
+-	Pid       int32
+-	Pad_cgo_1 [4]byte
+-}
+-
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -261,51 +134,20 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ 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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -314,277 +156,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	SizeofMsghdr            = 0x38
+-	SizeofCmsghdr           = 0x10
+-	SizeofInet4Pktinfo      = 0xc
+-	SizeofInet6Pktinfo      = 0x14
+-	SizeofIPv6MTUInfo       = 0x20
+-	SizeofICMPv6Filter      = 0x20
+-	SizeofUcred             = 0xc
+-	SizeofTCPInfo           = 0x68
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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            = 0x2b
+-	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
++	SizeofSockFprog = 0x10
+ )
+ 
+-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 {
+ 	Gpr       [32]uint64
+ 	Nip       uint64
+@@ -616,71 +197,37 @@ type Sysinfo_t struct {
+ 	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
++	_         [0]uint8
++	_         [4]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int32
+-	Pad_cgo_0 [4]byte
+-	Tinode    uint64
+-	Fname     [6]uint8
+-	Fpack     [6]uint8
+-	Pad_cgo_1 [4]byte
++	Tfree  int32
++	Tinode uint64
++	Fname  [6]uint8
++	Fpack  [6]uint8
++	_      [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
++	Events uint32
++	_      int32
++	Fd     int32
++	Pad    int32
+ }
+ 
+ const (
+-	POLLIN    = 0x1
+-	POLLPRI   = 0x2
+-	POLLOUT   = 0x4
+ 	POLLRDHUP = 0x2000
+-	POLLERR   = 0x8
+-	POLLHUP   = 0x10
+-	POLLNVAL  = 0x20
+ )
+ 
+ type Sigset_t struct {
+-	X__val [16]uint64
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x40045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -693,20 +240,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	Pad_cgo_0                 [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	Pad_cgo_1                 [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -718,13 +256,12 @@ type Taskstats struct {
+ 	Ac_comm                   [32]uint8
+ 	Ac_sched                  uint8
+ 	Ac_pad                    [3]uint8
+-	Pad_cgo_2                 [4]byte
++	_                         [4]byte
+ 	Ac_uid                    uint32
+ 	Ac_gid                    uint32
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	Pad_cgo_3                 [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -748,55 +285,319 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
+ }
+ 
++type cpuMask uint64
++
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	_NCPUBITS = 0x40
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++const (
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]uint8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	SizeofTpacketHdr = 0x20
+ )
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]uint8
++	Driver_name [64]uint8
++	Module_name [64]uint8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]uint8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]uint8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]uint8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]uint8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportHash struct {
++	Type       [64]uint8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]uint8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++	Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]uint8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint64
++	Inode            uint64
++	Rdevice          uint64
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]uint8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]uint8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+new file mode 100644
+index 00000000..0f2f61a6
+--- /dev/null
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
+@@ -0,0 +1,621 @@
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
++// +build riscv64,linux
++
++package unix
++
++const (
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
++)
++
++type (
++	_C_long int64
++)
++
++type Timespec struct {
++	Sec  int64
++	Nsec int64
++}
++
++type Timeval struct {
++	Sec  int64
++	Usec int64
++}
++
++type Timex struct {
++	Modes     uint32
++	Offset    int64
++	Freq      int64
++	Maxerror  int64
++	Esterror  int64
++	Status    int32
++	Constant  int64
++	Precision int64
++	Tolerance int64
++	Time      Timeval
++	Tick      int64
++	Ppsfreq   int64
++	Jitter    int64
++	Shift     int32
++	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 Stat_t struct {
++	Dev     uint64
++	Ino     uint64
++	Mode    uint32
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint64
++	_       uint64
++	Size    int64
++	Blksize int32
++	_       int32
++	Blocks  int64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	_       [2]int32
++}
++
++type Dirent struct {
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]uint8
++	_      [5]byte
++}
++
++type Flock_t struct {
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      [4]byte
++}
++
++const (
++	FADV_DONTNEED = 0x4
++	FADV_NOREUSE  = 0x5
++)
++
++type RawSockaddr struct {
++	Family uint16
++	Data   [14]uint8
++}
++
++type RawSockaddrAny struct {
++	Addr RawSockaddr
++	Pad  [96]uint8
++}
++
++type Iovec struct {
++	Base *byte
++	Len  uint64
++}
++
++type Msghdr struct {
++	Name       *byte
++	Namelen    uint32
++	Iov        *Iovec
++	Iovlen     uint64
++	Control    *byte
++	Controllen uint64
++	Flags      int32
++	_          [4]byte
++}
++
++type Cmsghdr struct {
++	Len   uint64
++	Level int32
++	Type  int32
++}
++
++const (
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
++)
++
++const (
++	SizeofSockFprog = 0x10
++)
++
++type PtraceRegs struct {
++	Pc  uint64
++	Ra  uint64
++	Sp  uint64
++	Gp  uint64
++	Tp  uint64
++	T0  uint64
++	T1  uint64
++	T2  uint64
++	S0  uint64
++	S1  uint64
++	A0  uint64
++	A1  uint64
++	A2  uint64
++	A3  uint64
++	A4  uint64
++	A5  uint64
++	A6  uint64
++	A7  uint64
++	S2  uint64
++	S3  uint64
++	S4  uint64
++	S5  uint64
++	S6  uint64
++	S7  uint64
++	S8  uint64
++	S9  uint64
++	S10 uint64
++	S11 uint64
++	T3  uint64
++	T4  uint64
++	T5  uint64
++	T6  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
++	Totalhigh uint64
++	Freehigh  uint64
++	Unit      uint32
++	_         [0]uint8
++	_         [4]byte
++}
++
++type Ustat_t struct {
++	Tfree  int32
++	Tinode uint64
++	Fname  [6]uint8
++	Fpack  [6]uint8
++	_      [4]byte
++}
++
++type EpollEvent struct {
++	Events uint32
++	_      int32
++	Fd     int32
++	Pad    int32
++}
++
++const (
++	POLLRDHUP = 0x2000
++)
++
++type Sigset_t struct {
++	Val [16]uint64
++}
++
++const _C__NSIG = 0x41
++
++type Termios struct {
++	Iflag  uint32
++	Oflag  uint32
++	Cflag  uint32
++	Lflag  uint32
++	Line   uint8
++	Cc     [19]uint8
++	Ispeed uint32
++	Ospeed uint32
++}
++
++type Taskstats struct {
++	Version                   uint16
++	Ac_exitcode               uint32
++	Ac_flag                   uint8
++	Ac_nice                   uint8
++	Cpu_count                 uint64
++	Cpu_delay_total           uint64
++	Blkio_count               uint64
++	Blkio_delay_total         uint64
++	Swapin_count              uint64
++	Swapin_delay_total        uint64
++	Cpu_run_real_total        uint64
++	Cpu_run_virtual_total     uint64
++	Ac_comm                   [32]uint8
++	Ac_sched                  uint8
++	Ac_pad                    [3]uint8
++	_                         [4]byte
++	Ac_uid                    uint32
++	Ac_gid                    uint32
++	Ac_pid                    uint32
++	Ac_ppid                   uint32
++	Ac_btime                  uint32
++	Ac_etime                  uint64
++	Ac_utime                  uint64
++	Ac_stime                  uint64
++	Ac_minflt                 uint64
++	Ac_majflt                 uint64
++	Coremem                   uint64
++	Virtmem                   uint64
++	Hiwater_rss               uint64
++	Hiwater_vm                uint64
++	Read_char                 uint64
++	Write_char                uint64
++	Read_syscalls             uint64
++	Write_syscalls            uint64
++	Read_bytes                uint64
++	Write_bytes               uint64
++	Cancelled_write_bytes     uint64
++	Nvcsw                     uint64
++	Nivcsw                    uint64
++	Ac_utimescaled            uint64
++	Ac_stimescaled            uint64
++	Cpu_scaled_run_real_total uint64
++	Freepages_count           uint64
++	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
++}
++
++type cpuMask uint64
++
++const (
++	_NCPUBITS = 0x40
++)
++
++const (
++	CBitFieldMaskBit0  = 0x1
++	CBitFieldMaskBit1  = 0x2
++	CBitFieldMaskBit2  = 0x4
++	CBitFieldMaskBit3  = 0x8
++	CBitFieldMaskBit4  = 0x10
++	CBitFieldMaskBit5  = 0x20
++	CBitFieldMaskBit6  = 0x40
++	CBitFieldMaskBit7  = 0x80
++	CBitFieldMaskBit8  = 0x100
++	CBitFieldMaskBit9  = 0x200
++	CBitFieldMaskBit10 = 0x400
++	CBitFieldMaskBit11 = 0x800
++	CBitFieldMaskBit12 = 0x1000
++	CBitFieldMaskBit13 = 0x2000
++	CBitFieldMaskBit14 = 0x4000
++	CBitFieldMaskBit15 = 0x8000
++	CBitFieldMaskBit16 = 0x10000
++	CBitFieldMaskBit17 = 0x20000
++	CBitFieldMaskBit18 = 0x40000
++	CBitFieldMaskBit19 = 0x80000
++	CBitFieldMaskBit20 = 0x100000
++	CBitFieldMaskBit21 = 0x200000
++	CBitFieldMaskBit22 = 0x400000
++	CBitFieldMaskBit23 = 0x800000
++	CBitFieldMaskBit24 = 0x1000000
++	CBitFieldMaskBit25 = 0x2000000
++	CBitFieldMaskBit26 = 0x4000000
++	CBitFieldMaskBit27 = 0x8000000
++	CBitFieldMaskBit28 = 0x10000000
++	CBitFieldMaskBit29 = 0x20000000
++	CBitFieldMaskBit30 = 0x40000000
++	CBitFieldMaskBit31 = 0x80000000
++	CBitFieldMaskBit32 = 0x100000000
++	CBitFieldMaskBit33 = 0x200000000
++	CBitFieldMaskBit34 = 0x400000000
++	CBitFieldMaskBit35 = 0x800000000
++	CBitFieldMaskBit36 = 0x1000000000
++	CBitFieldMaskBit37 = 0x2000000000
++	CBitFieldMaskBit38 = 0x4000000000
++	CBitFieldMaskBit39 = 0x8000000000
++	CBitFieldMaskBit40 = 0x10000000000
++	CBitFieldMaskBit41 = 0x20000000000
++	CBitFieldMaskBit42 = 0x40000000000
++	CBitFieldMaskBit43 = 0x80000000000
++	CBitFieldMaskBit44 = 0x100000000000
++	CBitFieldMaskBit45 = 0x200000000000
++	CBitFieldMaskBit46 = 0x400000000000
++	CBitFieldMaskBit47 = 0x800000000000
++	CBitFieldMaskBit48 = 0x1000000000000
++	CBitFieldMaskBit49 = 0x2000000000000
++	CBitFieldMaskBit50 = 0x4000000000000
++	CBitFieldMaskBit51 = 0x8000000000000
++	CBitFieldMaskBit52 = 0x10000000000000
++	CBitFieldMaskBit53 = 0x20000000000000
++	CBitFieldMaskBit54 = 0x40000000000000
++	CBitFieldMaskBit55 = 0x80000000000000
++	CBitFieldMaskBit56 = 0x100000000000000
++	CBitFieldMaskBit57 = 0x200000000000000
++	CBitFieldMaskBit58 = 0x400000000000000
++	CBitFieldMaskBit59 = 0x800000000000000
++	CBitFieldMaskBit60 = 0x1000000000000000
++	CBitFieldMaskBit61 = 0x2000000000000000
++	CBitFieldMaskBit62 = 0x4000000000000000
++	CBitFieldMaskBit63 = 0x8000000000000000
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]uint8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
++}
++
++const (
++	SizeofTpacketHdr = 0x20
++)
++
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
++}
++
++const (
++	BLKPG = 0x1269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]uint8
++	Driver_name [64]uint8
++	Module_name [64]uint8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]uint8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]uint8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]uint8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]uint8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]uint8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportLarval struct {
++	Type [64]uint8
++}
++
++type CryptoReportHash struct {
++	Type       [64]uint8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]uint8
++	Geniv       [64]uint8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]uint8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]uint8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]uint8
++}
++
++type CryptoReportKPP struct {
++	Type [64]uint8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]uint8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint64
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]uint8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]uint8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]uint8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]uint8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]uint8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+index 5e0aa663..cca1b6be 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
+@@ -6,19 +6,12 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
+-	PathMax        = 0x1000
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -33,13 +26,11 @@ type Timeval struct {
+ 
+ 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
+@@ -48,7 +39,6 @@ type Timex struct {
+ 	Ppsfreq   int64
+ 	Jitter    int64
+ 	Shift     int32
+-	_         [4]byte
+ 	Stabil    int64
+ 	Jitcnt    int64
+ 	Calcnt    int64
+@@ -91,13 +81,6 @@ type Rusage struct {
+ 	Nivcsw   int64
+ }
+ 
+-type Rlimit struct {
+-	Cur uint64
+-	Max uint64
+-}
+-
+-type _Gid_t uint32
+-
+ type Stat_t struct {
+ 	Dev     uint64
+ 	Ino     uint64
+@@ -116,22 +99,6 @@ type Stat_t struct {
+ 	_       [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
+@@ -141,115 +108,20 @@ type Dirent struct {
+ 	_      [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
+ }
+ 
+-type FscryptPolicy struct {
+-	Version                   uint8
+-	Contents_encryption_mode  uint8
+-	Filenames_encryption_mode uint8
+-	Flags                     uint8
+-	Master_key_descriptor     [8]uint8
+-}
+-
+-type FscryptKey struct {
+-	Mode uint32
+-	Raw  [64]uint8
+-	Size uint32
+-}
+-
+-type KeyctlDHParams struct {
+-	Private int32
+-	Prime   int32
+-	Base    int32
+-}
+-
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x6
+-	FADV_NOREUSE    = 0x7
++	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
+-	_       [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
+@@ -260,45 +132,14 @@ type RawSockaddrAny struct {
+ 	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 PacketMreq struct {
+-	Ifindex int32
+-	Type    uint16
+-	Alen    uint16
+-	Address [8]uint8
+-}
+-
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+-	_          [4]byte
+ 	Iov        *Iovec
+ 	Iovlen     uint64
+ 	Control    *byte
+@@ -313,277 +154,16 @@ type Cmsghdr struct {
+ 	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
+-	SizeofIovec             = 0x10
+-	SizeofIPMreq            = 0x8
+-	SizeofIPMreqn           = 0xc
+-	SizeofIPv6Mreq          = 0x14
+-	SizeofPacketMreq        = 0x10
+-	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            = 0x2b
+-	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
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+-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
++	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
+@@ -601,18 +181,15 @@ type PtracePsw struct {
+ 
+ type PtraceFpregs struct {
+ 	Fpc  uint32
+-	_    [4]byte
+ 	Fprs [16]float64
+ }
+ 
+ type PtracePer struct {
+ 	_             [0]uint64
+-	_             [24]byte
+-	_             [8]byte
++	_             [32]byte
+ 	Starting_addr uint64
+ 	Ending_addr   uint64
+ 	Perc_atmid    uint16
+-	_             [6]byte
+ 	Address       uint64
+ 	Access_id     uint8
+ 	_             [7]byte
+@@ -633,7 +210,6 @@ type Sysinfo_t struct {
+ 	Freeswap  uint64
+ 	Procs     uint16
+ 	Pad       uint16
+-	_         [4]byte
+ 	Totalhigh uint64
+ 	Freehigh  uint64
+ 	Unit      uint32
+@@ -641,18 +217,8 @@ type Sysinfo_t struct {
+ 	_         [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
+@@ -667,37 +233,14 @@ type EpollEvent struct {
+ }
+ 
+ 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 {
+-	_ [16]uint64
++	Val [16]uint64
+ }
+ 
+-const RNDGETENTCNT = 0x80045200
+-
+-const PERF_IOC_FLAG_GROUP = 0x1
+-
+-const _SC_PAGESIZE = 0x1e
++const _C__NSIG = 0x41
+ 
+ type Termios struct {
+ 	Iflag  uint32
+@@ -710,20 +253,11 @@ type Termios struct {
+ 	Ospeed uint32
+ }
+ 
+-type Winsize struct {
+-	Row    uint16
+-	Col    uint16
+-	Xpixel uint16
+-	Ypixel uint16
+-}
+-
+ type Taskstats struct {
+ 	Version                   uint16
+-	_                         [2]byte
+ 	Ac_exitcode               uint32
+ 	Ac_flag                   uint8
+ 	Ac_nice                   uint8
+-	_                         [6]byte
+ 	Cpu_count                 uint64
+ 	Cpu_delay_total           uint64
+ 	Blkio_count               uint64
+@@ -741,7 +275,6 @@ type Taskstats struct {
+ 	Ac_pid                    uint32
+ 	Ac_ppid                   uint32
+ 	Ac_btime                  uint32
+-	_                         [4]byte
+ 	Ac_etime                  uint64
+ 	Ac_utime                  uint64
+ 	Ac_stime                  uint64
+@@ -765,55 +298,320 @@ type Taskstats struct {
+ 	Cpu_scaled_run_real_total uint64
+ 	Freepages_count           uint64
+ 	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
++}
++
++type cpuMask uint64
++
++const (
++	_NCPUBITS = 0x40
++)
++
++const (
++	CBitFieldMaskBit0  = 0x8000000000000000
++	CBitFieldMaskBit1  = 0x4000000000000000
++	CBitFieldMaskBit2  = 0x2000000000000000
++	CBitFieldMaskBit3  = 0x1000000000000000
++	CBitFieldMaskBit4  = 0x800000000000000
++	CBitFieldMaskBit5  = 0x400000000000000
++	CBitFieldMaskBit6  = 0x200000000000000
++	CBitFieldMaskBit7  = 0x100000000000000
++	CBitFieldMaskBit8  = 0x80000000000000
++	CBitFieldMaskBit9  = 0x40000000000000
++	CBitFieldMaskBit10 = 0x20000000000000
++	CBitFieldMaskBit11 = 0x10000000000000
++	CBitFieldMaskBit12 = 0x8000000000000
++	CBitFieldMaskBit13 = 0x4000000000000
++	CBitFieldMaskBit14 = 0x2000000000000
++	CBitFieldMaskBit15 = 0x1000000000000
++	CBitFieldMaskBit16 = 0x800000000000
++	CBitFieldMaskBit17 = 0x400000000000
++	CBitFieldMaskBit18 = 0x200000000000
++	CBitFieldMaskBit19 = 0x100000000000
++	CBitFieldMaskBit20 = 0x80000000000
++	CBitFieldMaskBit21 = 0x40000000000
++	CBitFieldMaskBit22 = 0x20000000000
++	CBitFieldMaskBit23 = 0x10000000000
++	CBitFieldMaskBit24 = 0x8000000000
++	CBitFieldMaskBit25 = 0x4000000000
++	CBitFieldMaskBit26 = 0x2000000000
++	CBitFieldMaskBit27 = 0x1000000000
++	CBitFieldMaskBit28 = 0x800000000
++	CBitFieldMaskBit29 = 0x400000000
++	CBitFieldMaskBit30 = 0x200000000
++	CBitFieldMaskBit31 = 0x100000000
++	CBitFieldMaskBit32 = 0x80000000
++	CBitFieldMaskBit33 = 0x40000000
++	CBitFieldMaskBit34 = 0x20000000
++	CBitFieldMaskBit35 = 0x10000000
++	CBitFieldMaskBit36 = 0x8000000
++	CBitFieldMaskBit37 = 0x4000000
++	CBitFieldMaskBit38 = 0x2000000
++	CBitFieldMaskBit39 = 0x1000000
++	CBitFieldMaskBit40 = 0x800000
++	CBitFieldMaskBit41 = 0x400000
++	CBitFieldMaskBit42 = 0x200000
++	CBitFieldMaskBit43 = 0x100000
++	CBitFieldMaskBit44 = 0x80000
++	CBitFieldMaskBit45 = 0x40000
++	CBitFieldMaskBit46 = 0x20000
++	CBitFieldMaskBit47 = 0x10000
++	CBitFieldMaskBit48 = 0x8000
++	CBitFieldMaskBit49 = 0x4000
++	CBitFieldMaskBit50 = 0x2000
++	CBitFieldMaskBit51 = 0x1000
++	CBitFieldMaskBit52 = 0x800
++	CBitFieldMaskBit53 = 0x400
++	CBitFieldMaskBit54 = 0x200
++	CBitFieldMaskBit55 = 0x100
++	CBitFieldMaskBit56 = 0x80
++	CBitFieldMaskBit57 = 0x40
++	CBitFieldMaskBit58 = 0x20
++	CBitFieldMaskBit59 = 0x10
++	CBitFieldMaskBit60 = 0x8
++	CBitFieldMaskBit61 = 0x4
++	CBitFieldMaskBit62 = 0x2
++	CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]int8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     uint64
++}
++
++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 TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	TASKSTATS_CMD_UNSPEC                  = 0x0
+-	TASKSTATS_CMD_GET                     = 0x1
+-	TASKSTATS_CMD_NEW                     = 0x2
+-	TASKSTATS_TYPE_UNSPEC                 = 0x0
+-	TASKSTATS_TYPE_PID                    = 0x1
+-	TASKSTATS_TYPE_TGID                   = 0x2
+-	TASKSTATS_TYPE_STATS                  = 0x3
+-	TASKSTATS_TYPE_AGGR_PID               = 0x4
+-	TASKSTATS_TYPE_AGGR_TGID              = 0x5
+-	TASKSTATS_TYPE_NULL                   = 0x6
+-	TASKSTATS_CMD_ATTR_UNSPEC             = 0x0
+-	TASKSTATS_CMD_ATTR_PID                = 0x1
+-	TASKSTATS_CMD_ATTR_TGID               = 0x2
+-	TASKSTATS_CMD_ATTR_REGISTER_CPUMASK   = 0x3
+-	TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4
++	SizeofTpacketHdr = 0x20
+ )
+ 
+-type Genlmsghdr struct {
+-	Cmd      uint8
+-	Version  uint8
+-	Reserved uint16
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
++}
++
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
+ }
+ 
+ const (
+-	CTRL_CMD_UNSPEC            = 0x0
+-	CTRL_CMD_NEWFAMILY         = 0x1
+-	CTRL_CMD_DELFAMILY         = 0x2
+-	CTRL_CMD_GETFAMILY         = 0x3
+-	CTRL_CMD_NEWOPS            = 0x4
+-	CTRL_CMD_DELOPS            = 0x5
+-	CTRL_CMD_GETOPS            = 0x6
+-	CTRL_CMD_NEWMCAST_GRP      = 0x7
+-	CTRL_CMD_DELMCAST_GRP      = 0x8
+-	CTRL_CMD_GETMCAST_GRP      = 0x9
+-	CTRL_ATTR_UNSPEC           = 0x0
+-	CTRL_ATTR_FAMILY_ID        = 0x1
+-	CTRL_ATTR_FAMILY_NAME      = 0x2
+-	CTRL_ATTR_VERSION          = 0x3
+-	CTRL_ATTR_HDRSIZE          = 0x4
+-	CTRL_ATTR_MAXATTR          = 0x5
+-	CTRL_ATTR_OPS              = 0x6
+-	CTRL_ATTR_MCAST_GROUPS     = 0x7
+-	CTRL_ATTR_OP_UNSPEC        = 0x0
+-	CTRL_ATTR_OP_ID            = 0x1
+-	CTRL_ATTR_OP_FLAGS         = 0x2
+-	CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0
+-	CTRL_ATTR_MCAST_GRP_NAME   = 0x1
+-	CTRL_ATTR_MCAST_GRP_ID     = 0x2
++	BLKPG = 0x1269
+ )
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
++}
++
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
++
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
++}
++
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
++}
++
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
++}
++
++type CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
++}
++
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
++}
++
++type CryptoStatLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportLarval struct {
++	Type [64]int8
++}
++
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
++
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++}
++
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
++}
++
++type CryptoReportComp struct {
++	Type [64]int8
++}
++
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint16
++	Inode            uint64
++	Rdevice          uint16
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]int8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+index 22bdab96..33a73bf1 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
+@@ -1,23 +1,17 @@
++// cgo -godefs -- -Wall -Werror -static -I/tmp/include linux/types.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
++
+ // +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
++	SizeofPtr  = 0x8
++	SizeofLong = 0x8
+ )
+ 
+ type (
+-	_C_short     int16
+-	_C_int       int32
+-	_C_long      int64
+-	_C_long_long int64
++	_C_long int64
+ )
+ 
+ type Timespec struct {
+@@ -26,20 +20,18 @@ type Timespec struct {
+ }
+ 
+ type Timeval struct {
+-	Sec       int64
+-	Usec      int32
+-	Pad_cgo_0 [4]byte
++	Sec  int64
++	Usec int32
++	_    [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
+@@ -48,14 +40,13 @@ type Timex struct {
+ 	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
++	_         [44]byte
+ }
+ 
+ type Time_t int64
+@@ -91,149 +82,50 @@ type Rusage struct {
+ 	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
++	Dev     uint64
++	_       uint16
++	Ino     uint64
++	Mode    uint32
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint64
++	_       uint16
++	Size    int64
++	Blksize int64
++	Blocks  int64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	_       uint64
++	_       uint64
+ }
+ 
+ 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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Name   [256]int8
++	_      [5]byte
+ }
+ 
+ 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
++	Type   int16
++	Whence int16
++	Start  int64
++	Len    int64
++	Pid    int32
++	_      int16
++	_      [2]byte
+ }
+ 
+ const (
+-	FADV_NORMAL     = 0x0
+-	FADV_RANDOM     = 0x1
+-	FADV_SEQUENTIAL = 0x2
+-	FADV_WILLNEED   = 0x3
+-	FADV_DONTNEED   = 0x4
+-	FADV_NOREUSE    = 0x5
++	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
+@@ -244,44 +136,20 @@ type RawSockaddrAny struct {
+ 	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
++	_          [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -290,377 +158,441 @@ type Cmsghdr struct {
+ 	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
++	SizeofIovec   = 0x10
++	SizeofMsghdr  = 0x38
++	SizeofCmsghdr = 0x10
+ )
+ 
+ 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
++	SizeofSockFprog = 0x10
+ )
+ 
+-type NlMsghdr struct {
+-	Len   uint32
+-	Type  uint16
+-	Flags uint16
+-	Seq   uint32
+-	Pid   uint32
++type PtraceRegs struct {
++	Regs   [16]uint64
++	Tstate uint64
++	Tpc    uint64
++	Tnpc   uint64
++	Y      uint32
++	Magic  uint32
+ }
+ 
+-type NlMsgerr struct {
+-	Error int32
+-	Msg   NlMsghdr
++type FdSet struct {
++	Bits [16]int64
+ }
+ 
+-type RtGenmsg struct {
+-	Family uint8
++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
++	Totalhigh uint64
++	Freehigh  uint64
++	Unit      uint32
++	_         [0]int8
++	_         [4]byte
+ }
+ 
+-type NlAttr struct {
+-	Len  uint16
+-	Type uint16
++type Ustat_t struct {
++	Tfree  int32
++	Tinode uint64
++	Fname  [6]int8
++	Fpack  [6]int8
++	_      [4]byte
+ }
+ 
+-type RtAttr struct {
+-	Len  uint16
+-	Type uint16
++type EpollEvent struct {
++	Events uint32
++	_      int32
++	Fd     int32
++	Pad    int32
+ }
+ 
+-type IfInfomsg struct {
+-	Family     uint8
+-	X__ifi_pad uint8
+-	Type       uint16
+-	Index      int32
+-	Flags      uint32
+-	Change     uint32
++const (
++	POLLRDHUP = 0x800
++)
++
++type Sigset_t struct {
++	Val [16]uint64
+ }
+ 
+-type IfAddrmsg struct {
+-	Family    uint8
+-	Prefixlen uint8
+-	Flags     uint8
+-	Scope     uint8
+-	Index     uint32
++const _C__NSIG = 0x41
++
++type Termios struct {
++	Iflag  uint32
++	Oflag  uint32
++	Cflag  uint32
++	Lflag  uint32
++	Line   uint8
++	Cc     [19]uint8
++	Ispeed uint32
++	Ospeed 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 Taskstats struct {
++	Version                   uint16
++	Ac_exitcode               uint32
++	Ac_flag                   uint8
++	Ac_nice                   uint8
++	Cpu_count                 uint64
++	Cpu_delay_total           uint64
++	Blkio_count               uint64
++	Blkio_delay_total         uint64
++	Swapin_count              uint64
++	Swapin_delay_total        uint64
++	Cpu_run_real_total        uint64
++	Cpu_run_virtual_total     uint64
++	Ac_comm                   [32]int8
++	Ac_sched                  uint8
++	Ac_pad                    [3]uint8
++	_                         [4]byte
++	Ac_uid                    uint32
++	Ac_gid                    uint32
++	Ac_pid                    uint32
++	Ac_ppid                   uint32
++	Ac_btime                  uint32
++	Ac_etime                  uint64
++	Ac_utime                  uint64
++	Ac_stime                  uint64
++	Ac_minflt                 uint64
++	Ac_majflt                 uint64
++	Coremem                   uint64
++	Virtmem                   uint64
++	Hiwater_rss               uint64
++	Hiwater_vm                uint64
++	Read_char                 uint64
++	Write_char                uint64
++	Read_syscalls             uint64
++	Write_syscalls            uint64
++	Read_bytes                uint64
++	Write_bytes               uint64
++	Cancelled_write_bytes     uint64
++	Nvcsw                     uint64
++	Nivcsw                    uint64
++	Ac_utimescaled            uint64
++	Ac_stimescaled            uint64
++	Cpu_scaled_run_real_total uint64
++	Freepages_count           uint64
++	Freepages_delay_total     uint64
++	Thrashing_count           uint64
++	Thrashing_delay_total     uint64
++	Ac_btime64                uint64
++}
++
++type cpuMask uint64
++
++const (
++	_NCPUBITS = 0x40
++)
++
++const (
++	CBitFieldMaskBit0  = 0x8000000000000000
++	CBitFieldMaskBit1  = 0x4000000000000000
++	CBitFieldMaskBit2  = 0x2000000000000000
++	CBitFieldMaskBit3  = 0x1000000000000000
++	CBitFieldMaskBit4  = 0x800000000000000
++	CBitFieldMaskBit5  = 0x400000000000000
++	CBitFieldMaskBit6  = 0x200000000000000
++	CBitFieldMaskBit7  = 0x100000000000000
++	CBitFieldMaskBit8  = 0x80000000000000
++	CBitFieldMaskBit9  = 0x40000000000000
++	CBitFieldMaskBit10 = 0x20000000000000
++	CBitFieldMaskBit11 = 0x10000000000000
++	CBitFieldMaskBit12 = 0x8000000000000
++	CBitFieldMaskBit13 = 0x4000000000000
++	CBitFieldMaskBit14 = 0x2000000000000
++	CBitFieldMaskBit15 = 0x1000000000000
++	CBitFieldMaskBit16 = 0x800000000000
++	CBitFieldMaskBit17 = 0x400000000000
++	CBitFieldMaskBit18 = 0x200000000000
++	CBitFieldMaskBit19 = 0x100000000000
++	CBitFieldMaskBit20 = 0x80000000000
++	CBitFieldMaskBit21 = 0x40000000000
++	CBitFieldMaskBit22 = 0x20000000000
++	CBitFieldMaskBit23 = 0x10000000000
++	CBitFieldMaskBit24 = 0x8000000000
++	CBitFieldMaskBit25 = 0x4000000000
++	CBitFieldMaskBit26 = 0x2000000000
++	CBitFieldMaskBit27 = 0x1000000000
++	CBitFieldMaskBit28 = 0x800000000
++	CBitFieldMaskBit29 = 0x400000000
++	CBitFieldMaskBit30 = 0x200000000
++	CBitFieldMaskBit31 = 0x100000000
++	CBitFieldMaskBit32 = 0x80000000
++	CBitFieldMaskBit33 = 0x40000000
++	CBitFieldMaskBit34 = 0x20000000
++	CBitFieldMaskBit35 = 0x10000000
++	CBitFieldMaskBit36 = 0x8000000
++	CBitFieldMaskBit37 = 0x4000000
++	CBitFieldMaskBit38 = 0x2000000
++	CBitFieldMaskBit39 = 0x1000000
++	CBitFieldMaskBit40 = 0x800000
++	CBitFieldMaskBit41 = 0x400000
++	CBitFieldMaskBit42 = 0x200000
++	CBitFieldMaskBit43 = 0x100000
++	CBitFieldMaskBit44 = 0x80000
++	CBitFieldMaskBit45 = 0x40000
++	CBitFieldMaskBit46 = 0x20000
++	CBitFieldMaskBit47 = 0x10000
++	CBitFieldMaskBit48 = 0x8000
++	CBitFieldMaskBit49 = 0x4000
++	CBitFieldMaskBit50 = 0x2000
++	CBitFieldMaskBit51 = 0x1000
++	CBitFieldMaskBit52 = 0x800
++	CBitFieldMaskBit53 = 0x400
++	CBitFieldMaskBit54 = 0x200
++	CBitFieldMaskBit55 = 0x100
++	CBitFieldMaskBit56 = 0x80
++	CBitFieldMaskBit57 = 0x40
++	CBitFieldMaskBit58 = 0x20
++	CBitFieldMaskBit59 = 0x10
++	CBitFieldMaskBit60 = 0x8
++	CBitFieldMaskBit61 = 0x4
++	CBitFieldMaskBit62 = 0x2
++	CBitFieldMaskBit63 = 0x1
++)
++
++type SockaddrStorage struct {
++	Family uint16
++	_      [118]int8
++	_      uint64
++}
++
++type HDGeometry struct {
++	Heads     uint8
++	Sectors   uint8
++	Cylinders uint16
++	Start     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 RtNexthop struct {
+-	Len     uint16
+-	Flags   uint8
+-	Hops    uint8
+-	Ifindex int32
++type TpacketHdr struct {
++	Status  uint64
++	Len     uint32
++	Snaplen uint32
++	Mac     uint16
++	Net     uint16
++	Sec     uint32
++	Usec    uint32
++	_       [4]byte
+ }
+ 
+ const (
+-	SizeofSockFilter = 0x8
+-	SizeofSockFprog  = 0x10
++	SizeofTpacketHdr = 0x20
+ )
+ 
+-type SockFilter struct {
+-	Code uint16
+-	Jt   uint8
+-	Jf   uint8
+-	K    uint32
++type RTCPLLInfo struct {
++	Ctrl    int32
++	Value   int32
++	Max     int32
++	Min     int32
++	Posmult int32
++	Negmult int32
++	Clock   int64
+ }
+ 
+-type SockFprog struct {
+-	Len       uint16
+-	Pad_cgo_0 [6]byte
+-	Filter    *SockFilter
++type BlkpgPartition struct {
++	Start   int64
++	Length  int64
++	Pno     int32
++	Devname [64]uint8
++	Volname [64]uint8
++	_       [4]byte
+ }
+ 
+-type InotifyEvent struct {
+-	Wd     int32
+-	Mask   uint32
+-	Cookie uint32
+-	Len    uint32
++const (
++	BLKPG = 0x20001269
++)
++
++type XDPUmemReg struct {
++	Addr     uint64
++	Len      uint64
++	Size     uint32
++	Headroom uint32
++	Flags    uint32
++	_        [4]byte
+ }
+ 
+-const SizeofInotifyEvent = 0x10
++type CryptoUserAlg struct {
++	Name        [64]int8
++	Driver_name [64]int8
++	Module_name [64]int8
++	Type        uint32
++	Mask        uint32
++	Refcnt      uint32
++	Flags       uint32
++}
+ 
+-type PtraceRegs struct {
+-	Regs   [16]uint64
+-	Tstate uint64
+-	Tpc    uint64
+-	Tnpc   uint64
+-	Y      uint32
+-	Magic  uint32
++type CryptoStatAEAD struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
+ }
+ 
+-type ptracePsw struct {
++type CryptoStatAKCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Verify_cnt   uint64
++	Sign_cnt     uint64
++	Err_cnt      uint64
+ }
+ 
+-type ptraceFpregs struct {
++type CryptoStatCipher struct {
++	Type         [64]int8
++	Encrypt_cnt  uint64
++	Encrypt_tlen uint64
++	Decrypt_cnt  uint64
++	Decrypt_tlen uint64
++	Err_cnt      uint64
+ }
+ 
+-type ptracePer struct {
++type CryptoStatCompress struct {
++	Type            [64]int8
++	Compress_cnt    uint64
++	Compress_tlen   uint64
++	Decompress_cnt  uint64
++	Decompress_tlen uint64
++	Err_cnt         uint64
+ }
+ 
+-type FdSet struct {
+-	Bits [16]int64
++type CryptoStatHash struct {
++	Type      [64]int8
++	Hash_cnt  uint64
++	Hash_tlen uint64
++	Err_cnt   uint64
+ }
+ 
+-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 CryptoStatKPP struct {
++	Type                      [64]int8
++	Setsecret_cnt             uint64
++	Generate_public_key_cnt   uint64
++	Compute_shared_secret_cnt uint64
++	Err_cnt                   uint64
+ }
+ 
+-type Utsname struct {
+-	Sysname    [65]int8
+-	Nodename   [65]int8
+-	Release    [65]int8
+-	Version    [65]int8
+-	Machine    [65]int8
+-	Domainname [65]int8
++type CryptoStatRNG struct {
++	Type          [64]int8
++	Generate_cnt  uint64
++	Generate_tlen uint64
++	Seed_cnt      uint64
++	Err_cnt       uint64
+ }
+ 
+-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 CryptoStatLarval struct {
++	Type [64]int8
+ }
+ 
+-type EpollEvent struct {
+-	Events  uint32
+-	X_padFd int32
+-	Fd      int32
+-	Pad     int32
++type CryptoReportLarval struct {
++	Type [64]int8
+ }
+ 
+-const (
+-	AT_FDCWD            = -0x64
+-	AT_REMOVEDIR        = 0x200
+-	AT_SYMLINK_FOLLOW   = 0x400
+-	AT_SYMLINK_NOFOLLOW = 0x100
+-)
++type CryptoReportHash struct {
++	Type       [64]int8
++	Blocksize  uint32
++	Digestsize uint32
++}
+ 
+-type PollFd struct {
+-	Fd      int32
+-	Events  int16
+-	Revents int16
++type CryptoReportCipher struct {
++	Type        [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
+ }
+ 
+-const (
+-	POLLIN    = 0x1
+-	POLLPRI   = 0x2
+-	POLLOUT   = 0x4
+-	POLLRDHUP = 0x800
+-	POLLERR   = 0x8
+-	POLLHUP   = 0x10
+-	POLLNVAL  = 0x20
+-)
++type CryptoReportBlkCipher struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Min_keysize uint32
++	Max_keysize uint32
++	Ivsize      uint32
++}
+ 
+-type Sigset_t struct {
+-	X__val [16]uint64
++type CryptoReportAEAD struct {
++	Type        [64]int8
++	Geniv       [64]int8
++	Blocksize   uint32
++	Maxauthsize uint32
++	Ivsize      uint32
+ }
+ 
+-const _SC_PAGESIZE = 0x1e
++type CryptoReportComp struct {
++	Type [64]int8
++}
+ 
+-type Termios struct {
+-	Iflag  uint32
+-	Oflag  uint32
+-	Cflag  uint32
+-	Lflag  uint32
+-	Line   uint8
+-	Cc     [19]uint8
+-	Ispeed uint32
+-	Ospeed uint32
++type CryptoReportRNG struct {
++	Type     [64]int8
++	Seedsize uint32
++}
++
++type CryptoReportAKCipher struct {
++	Type [64]int8
++}
++
++type CryptoReportKPP struct {
++	Type [64]int8
++}
++
++type CryptoReportAcomp struct {
++	Type [64]int8
++}
++
++type LoopInfo struct {
++	Number           int32
++	Device           uint32
++	Inode            uint64
++	Rdevice          uint32
++	Offset           int32
++	Encrypt_type     int32
++	Encrypt_key_size int32
++	Flags            int32
++	Name             [64]int8
++	Encrypt_key      [32]uint8
++	Init             [2]uint64
++	Reserved         [4]int8
++	_                [4]byte
++}
++
++type TIPCSubscr struct {
++	Seq     TIPCServiceRange
++	Timeout uint32
++	Filter  uint32
++	Handle  [8]int8
++}
++
++type TIPCSIOCLNReq struct {
++	Peer     uint32
++	Id       uint32
++	Linkname [68]int8
++}
++
++type TIPCSIOCNodeIDReq struct {
++	Peer uint32
++	Id   [16]int8
+ }
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+index 42f99c0a..a89100c0 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,netbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -57,27 +57,54 @@ type Rlimit struct {
+ 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
++	Dev     uint64
++	Mode    uint32
++	Ino     uint64
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize uint32
++	Flags   uint32
++	Gen     uint32
++	Spare   [2]uint32
+ }
+ 
+ type Statfs_t [0]byte
+ 
++type Statvfs_t struct {
++	Flag        uint32
++	Bsize       uint32
++	Frsize      uint32
++	Iosize      uint32
++	Blocks      uint64
++	Bfree       uint64
++	Bavail      uint64
++	Bresvd      uint64
++	Files       uint64
++	Ffree       uint64
++	Favail      uint64
++	Fresvd      uint64
++	Syncreads   uint64
++	Syncwrites  uint64
++	Asyncreads  uint64
++	Asyncwrites uint64
++	Fsidx       Fsid
++	Fsid        uint32
++	Namemax     uint32
++	Owner       uint32
++	Spare       [4]uint32
++	Fstypename  [32]byte
++	Mntonname   [1024]byte
++	Mntfromname [1024]byte
++}
++
+ type Flock_t struct {
+ 	Start  int64
+ 	Len    int64
+@@ -99,6 +126,24 @@ type Fsid struct {
+ 	X__fsid_val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
++const (
++	ST_WAIT   = 0x1
++	ST_NOWAIT = 0x2
++)
++
++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
+@@ -382,11 +427,45 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++type Ptmget struct {
++	Cfd int32
++	Sfd int32
++	Cn  [1024]byte
++	Sn  [1024]byte
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x400
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ 	Flags           uint32
+ 	Num             int32
+@@ -399,3 +478,21 @@ type Sysctlnode struct {
+ 	X_sysctl_parent [8]byte
+ 	X_sysctl_desc   [8]byte
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+index ff290ba0..289184e0 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,netbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -58,30 +58,58 @@ type Rlimit struct {
+ 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
++	Dev     uint64
++	Mode    uint32
++	_       [4]byte
++	Ino     uint64
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	_       [4]byte
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize uint32
++	Flags   uint32
++	Gen     uint32
++	Spare   [2]uint32
++	_       [4]byte
+ }
+ 
+ type Statfs_t [0]byte
+ 
++type Statvfs_t struct {
++	Flag        uint64
++	Bsize       uint64
++	Frsize      uint64
++	Iosize      uint64
++	Blocks      uint64
++	Bfree       uint64
++	Bavail      uint64
++	Bresvd      uint64
++	Files       uint64
++	Ffree       uint64
++	Favail      uint64
++	Fresvd      uint64
++	Syncreads   uint64
++	Syncwrites  uint64
++	Asyncreads  uint64
++	Asyncwrites uint64
++	Fsidx       Fsid
++	Fsid        uint64
++	Namemax     uint64
++	Owner       uint32
++	Spare       [4]uint32
++	Fstypename  [32]byte
++	Mntonname   [1024]byte
++	Mntfromname [1024]byte
++	_           [4]byte
++}
++
+ type Flock_t struct {
+ 	Start  int64
+ 	Len    int64
+@@ -103,6 +131,24 @@ type Fsid struct {
+ 	X__fsid_val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
++const (
++	ST_WAIT   = 0x1
++	ST_NOWAIT = 0x2
++)
++
++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
+@@ -389,11 +435,45 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++type Ptmget struct {
++	Cfd int32
++	Sfd int32
++	Cn  [1024]byte
++	Sn  [1024]byte
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x400
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ 	Flags           uint32
+ 	Num             int32
+@@ -406,3 +486,21 @@ type Sysctlnode struct {
+ 	X_sysctl_parent [8]byte
+ 	X_sysctl_desc   [8]byte
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+index 66dbd7c0..428c450e 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,netbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -59,30 +59,57 @@ type Rlimit struct {
+ 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
++	Dev     uint64
++	Mode    uint32
++	_       [4]byte
++	Ino     uint64
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	_       [4]byte
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize uint32
++	Flags   uint32
++	Gen     uint32
++	Spare   [2]uint32
++	_       [4]byte
+ }
+ 
+ type Statfs_t [0]byte
+ 
++type Statvfs_t struct {
++	Flag        uint32
++	Bsize       uint32
++	Frsize      uint32
++	Iosize      uint32
++	Blocks      uint64
++	Bfree       uint64
++	Bavail      uint64
++	Bresvd      uint64
++	Files       uint64
++	Ffree       uint64
++	Favail      uint64
++	Fresvd      uint64
++	Syncreads   uint64
++	Syncwrites  uint64
++	Asyncreads  uint64
++	Asyncwrites uint64
++	Fsidx       Fsid
++	Fsid        uint32
++	Namemax     uint32
++	Owner       uint32
++	Spare       [4]uint32
++	Fstypename  [32]byte
++	Mntonname   [1024]byte
++	Mntfromname [1024]byte
++}
++
+ type Flock_t struct {
+ 	Start  int64
+ 	Len    int64
+@@ -104,6 +131,24 @@ type Fsid struct {
+ 	X__fsid_val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
++const (
++	ST_WAIT   = 0x1
++	ST_NOWAIT = 0x2
++)
++
++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
+@@ -387,11 +432,45 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++type Ptmget struct {
++	Cfd int32
++	Sfd int32
++	Cn  [1024]byte
++	Sn  [1024]byte
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x400
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ 	Flags           uint32
+ 	Num             int32
+@@ -404,3 +483,21 @@ type Sysctlnode struct {
+ 	X_sysctl_parent [8]byte
+ 	X_sysctl_desc   [8]byte
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+similarity index 73%
+copy from vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+index ff290ba0..6f1f2842 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_netbsd.go
++// cgo -godefs types_netbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build amd64,netbsd
++// +build arm64,netbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -58,30 +58,58 @@ type Rlimit struct {
+ 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
++	Dev     uint64
++	Mode    uint32
++	_       [4]byte
++	Ino     uint64
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	_       [4]byte
++	Rdev    uint64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Btim    Timespec
++	Size    int64
++	Blocks  int64
++	Blksize uint32
++	Flags   uint32
++	Gen     uint32
++	Spare   [2]uint32
++	_       [4]byte
+ }
+ 
+ type Statfs_t [0]byte
+ 
++type Statvfs_t struct {
++	Flag        uint64
++	Bsize       uint64
++	Frsize      uint64
++	Iosize      uint64
++	Blocks      uint64
++	Bfree       uint64
++	Bavail      uint64
++	Bresvd      uint64
++	Files       uint64
++	Ffree       uint64
++	Favail      uint64
++	Fresvd      uint64
++	Syncreads   uint64
++	Syncwrites  uint64
++	Asyncreads  uint64
++	Asyncwrites uint64
++	Fsidx       Fsid
++	Fsid        uint64
++	Namemax     uint64
++	Owner       uint32
++	Spare       [4]uint32
++	Fstypename  [32]byte
++	Mntonname   [1024]byte
++	Mntfromname [1024]byte
++	_           [4]byte
++}
++
+ type Flock_t struct {
+ 	Start  int64
+ 	Len    int64
+@@ -103,6 +131,24 @@ type Fsid struct {
+ 	X__fsid_val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
++const (
++	ST_WAIT   = 0x1
++	ST_NOWAIT = 0x2
++)
++
++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
+@@ -389,11 +435,45 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
++type Ptmget struct {
++	Cfd int32
++	Sfd int32
++	Cn  [1024]byte
++	Sn  [1024]byte
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x400
+ 	AT_SYMLINK_NOFOLLOW = 0x200
+ )
+ 
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
+ type Sysctlnode struct {
+ 	Flags           uint32
+ 	Num             int32
+@@ -406,3 +486,21 @@ type Sysctlnode struct {
+ 	X_sysctl_parent [8]byte
+ 	X_sysctl_desc   [8]byte
+ }
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
+index 20fc9f45..61ea0019 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build 386,openbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -56,23 +56,6 @@ type Rlimit struct {
+ 
+ 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
+@@ -140,6 +123,10 @@ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -440,7 +427,145 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x4
+ 	AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++	Pagesize           int32
++	Pagemask           int32
++	Pageshift          int32
++	Npages             int32
++	Free               int32
++	Active             int32
++	Inactive           int32
++	Paging             int32
++	Wired              int32
++	Zeropages          int32
++	Reserve_pagedaemon int32
++	Reserve_kernel     int32
++	Anonpages          int32
++	Vnodepages         int32
++	Vtextpages         int32
++	Freemin            int32
++	Freetarg           int32
++	Inactarg           int32
++	Wiredmax           int32
++	Anonmin            int32
++	Vtextmin           int32
++	Vnodemin           int32
++	Anonminpct         int32
++	Vtextminpct        int32
++	Vnodeminpct        int32
++	Nswapdev           int32
++	Swpages            int32
++	Swpginuse          int32
++	Swpgonly           int32
++	Nswget             int32
++	Nanon              int32
++	Nanonneeded        int32
++	Nfreeanon          int32
++	Faults             int32
++	Traps              int32
++	Intrs              int32
++	Swtch              int32
++	Softs              int32
++	Syscalls           int32
++	Pageins            int32
++	Obsolete_swapins   int32
++	Obsolete_swapouts  int32
++	Pgswapin           int32
++	Pgswapout          int32
++	Forks              int32
++	Forks_ppwait       int32
++	Forks_sharevm      int32
++	Pga_zerohit        int32
++	Pga_zeromiss       int32
++	Zeroaborts         int32
++	Fltnoram           int32
++	Fltnoanon          int32
++	Fltnoamap          int32
++	Fltpgwait          int32
++	Fltpgrele          int32
++	Fltrelck           int32
++	Fltrelckok         int32
++	Fltanget           int32
++	Fltanretry         int32
++	Fltamcopy          int32
++	Fltnamap           int32
++	Fltnomap           int32
++	Fltlget            int32
++	Fltget             int32
++	Flt_anon           int32
++	Flt_acow           int32
++	Flt_obj            int32
++	Flt_prcopy         int32
++	Flt_przero         int32
++	Pdwoke             int32
++	Pdrevs             int32
++	Pdswout            int32
++	Pdfreed            int32
++	Pdscans            int32
++	Pdanscan           int32
++	Pdobscan           int32
++	Pdreact            int32
++	Pdbusy             int32
++	Pdpageouts         int32
++	Pdpending          int32
++	Pddeact            int32
++	Pdreanon           int32
++	Pdrevnode          int32
++	Pdrevtext          int32
++	Fpswtch            int32
++	Kmapent            int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  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
+index 46fe9490..87a493f6 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build amd64,openbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -56,48 +56,31 @@ type Rlimit struct {
+ 
+ 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
++	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 int32
++	Flags   uint32
++	Gen     uint32
++	_       [4]byte
++	_       Timespec
+ }
+ 
+ type Statfs_t struct {
+ 	F_flags       uint32
+ 	F_bsize       uint32
+ 	F_iosize      uint32
+-	Pad_cgo_0     [4]byte
++	_             [4]byte
+ 	F_blocks      uint64
+ 	F_bfree       uint64
+ 	F_bavail      int64
+@@ -116,7 +99,7 @@ type Statfs_t struct {
+ 	F_mntonname   [90]int8
+ 	F_mntfromname [90]int8
+ 	F_mntfromspec [90]int8
+-	Pad_cgo_1     [2]byte
++	_             [2]byte
+ 	Mount_info    [160]byte
+ }
+ 
+@@ -129,19 +112,23 @@ type Flock_t struct {
+ }
+ 
+ type Dirent struct {
+-	Fileno       uint64
+-	Off          int64
+-	Reclen       uint16
+-	Type         uint8
+-	Namlen       uint8
+-	X__d_padding [4]uint8
+-	Name         [256]int8
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Namlen uint8
++	_      [4]uint8
++	Name   [256]int8
+ }
+ 
+ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -212,10 +199,10 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ 	Name       *byte
+ 	Namelen    uint32
+-	Pad_cgo_0  [4]byte
++	_          [4]byte
+ 	Iov        *Iovec
+ 	Iovlen     uint32
+-	Pad_cgo_1  [4]byte
++	_          [4]byte
+ 	Control    *byte
+ 	Controllen uint32
+ 	Flags      int32
+@@ -277,8 +264,8 @@ type FdSet struct {
+ }
+ 
+ const (
+-	SizeofIfMsghdr         = 0xf8
+-	SizeofIfData           = 0xe0
++	SizeofIfMsghdr         = 0xa8
++	SizeofIfData           = 0x90
+ 	SizeofIfaMsghdr        = 0x18
+ 	SizeofIfAnnounceMsghdr = 0x1a
+ 	SizeofRtMsghdr         = 0x60
+@@ -307,7 +294,7 @@ type IfData struct {
+ 	Link_state   uint8
+ 	Mtu          uint32
+ 	Metric       uint32
+-	Pad          uint32
++	Rdomain      uint32
+ 	Baudrate     uint64
+ 	Ipackets     uint64
+ 	Ierrors      uint64
+@@ -319,12 +306,11 @@ type IfData struct {
+ 	Imcasts      uint64
+ 	Omcasts      uint64
+ 	Iqdrops      uint64
++	Oqdrops      uint64
+ 	Noproto      uint64
+ 	Capabilities uint32
+-	Pad_cgo_0    [4]byte
++	_            [4]byte
+ 	Lastchange   Timeval
+-	Mclpool      [7]Mclpool
+-	Pad_cgo_1    [4]byte
+ }
+ 
+ type IfaMsghdr struct {
+@@ -385,13 +371,7 @@ type RtMetrics struct {
+ 	Pad      uint32
+ }
+ 
+-type Mclpool struct {
+-	Grown int32
+-	Alive uint16
+-	Hwm   uint16
+-	Cwm   uint16
+-	Lwm   uint16
+-}
++type Mclpool struct{}
+ 
+ const (
+ 	SizeofBpfVersion = 0x4
+@@ -412,9 +392,9 @@ type BpfStat struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	_     [4]byte
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -425,11 +405,11 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    BpfTimeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  BpfTimeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [2]byte
+ }
+ 
+ type BpfTimeval struct {
+@@ -447,7 +427,145 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x4
+ 	AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++	Pagesize           int32
++	Pagemask           int32
++	Pageshift          int32
++	Npages             int32
++	Free               int32
++	Active             int32
++	Inactive           int32
++	Paging             int32
++	Wired              int32
++	Zeropages          int32
++	Reserve_pagedaemon int32
++	Reserve_kernel     int32
++	Anonpages          int32
++	Vnodepages         int32
++	Vtextpages         int32
++	Freemin            int32
++	Freetarg           int32
++	Inactarg           int32
++	Wiredmax           int32
++	Anonmin            int32
++	Vtextmin           int32
++	Vnodemin           int32
++	Anonminpct         int32
++	Vtextminpct        int32
++	Vnodeminpct        int32
++	Nswapdev           int32
++	Swpages            int32
++	Swpginuse          int32
++	Swpgonly           int32
++	Nswget             int32
++	Nanon              int32
++	Nanonneeded        int32
++	Nfreeanon          int32
++	Faults             int32
++	Traps              int32
++	Intrs              int32
++	Swtch              int32
++	Softs              int32
++	Syscalls           int32
++	Pageins            int32
++	Obsolete_swapins   int32
++	Obsolete_swapouts  int32
++	Pgswapin           int32
++	Pgswapout          int32
++	Forks              int32
++	Forks_ppwait       int32
++	Forks_sharevm      int32
++	Pga_zerohit        int32
++	Pga_zeromiss       int32
++	Zeroaborts         int32
++	Fltnoram           int32
++	Fltnoanon          int32
++	Fltnoamap          int32
++	Fltpgwait          int32
++	Fltpgrele          int32
++	Fltrelck           int32
++	Fltrelckok         int32
++	Fltanget           int32
++	Fltanretry         int32
++	Fltamcopy          int32
++	Fltnamap           int32
++	Fltnomap           int32
++	Fltlget            int32
++	Fltget             int32
++	Flt_anon           int32
++	Flt_acow           int32
++	Flt_obj            int32
++	Flt_prcopy         int32
++	Flt_przero         int32
++	Pdwoke             int32
++	Pdrevs             int32
++	Pdswout            int32
++	Pdfreed            int32
++	Pdscans            int32
++	Pdanscan           int32
++	Pdobscan           int32
++	Pdreact            int32
++	Pdbusy             int32
++	Pdpageouts         int32
++	Pdpending          int32
++	Pddeact            int32
++	Pdreanon           int32
++	Pdrevnode          int32
++	Pdrevtext          int32
++	Fpswtch            int32
++	Kmapent            int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
+index 62e1f7c0..d80836ef 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+ // +build arm,openbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x4
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x4
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x4
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x4
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -23,11 +23,13 @@ type (
+ type Timespec struct {
+ 	Sec  int64
+ 	Nsec int32
++	_    [4]byte
+ }
+ 
+ type Timeval struct {
+ 	Sec  int64
+ 	Usec int32
++	_    [4]byte
+ }
+ 
+ type Rusage struct {
+@@ -56,46 +58,31 @@ type Rlimit struct {
+ 
+ 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        int32
+-	Flags          uint32
+-	Gen            uint32
+-	X__st_birthtim Timespec
++	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 int32
++	Flags   uint32
++	Gen     uint32
++	_       [4]byte
++	_       Timespec
+ }
+ 
+ type Statfs_t struct {
+ 	F_flags       uint32
+ 	F_bsize       uint32
+ 	F_iosize      uint32
++	_             [4]byte
+ 	F_blocks      uint64
+ 	F_bfree       uint64
+ 	F_bavail      int64
+@@ -110,11 +97,11 @@ type Statfs_t struct {
+ 	F_namemax     uint32
+ 	F_owner       uint32
+ 	F_ctime       uint64
+-	F_fstypename  [16]uint8
+-	F_mntonname   [90]uint8
+-	F_mntfromname [90]uint8
+-	F_mntfromspec [90]uint8
+-	Pad_cgo_0     [2]byte
++	F_fstypename  [16]int8
++	F_mntonname   [90]int8
++	F_mntfromname [90]int8
++	F_mntfromspec [90]int8
++	_             [2]byte
+ 	Mount_info    [160]byte
+ }
+ 
+@@ -127,19 +114,23 @@ type Flock_t struct {
+ }
+ 
+ type Dirent struct {
+-	Fileno       uint64
+-	Off          int64
+-	Reclen       uint16
+-	Type         uint8
+-	Namlen       uint8
+-	X__d_padding [4]uint8
+-	Name         [256]uint8
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Namlen uint8
++	_      [4]uint8
++	Name   [256]int8
+ }
+ 
+ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -264,8 +255,10 @@ type Kevent_t struct {
+ 	Filter int16
+ 	Flags  uint16
+ 	Fflags uint32
++	_      [4]byte
+ 	Data   int64
+ 	Udata  *byte
++	_      [4]byte
+ }
+ 
+ type FdSet struct {
+@@ -273,8 +266,8 @@ type FdSet struct {
+ }
+ 
+ const (
+-	SizeofIfMsghdr         = 0x98
+-	SizeofIfData           = 0x80
++	SizeofIfMsghdr         = 0xa8
++	SizeofIfData           = 0x90
+ 	SizeofIfaMsghdr        = 0x18
+ 	SizeofIfAnnounceMsghdr = 0x1a
+ 	SizeofRtMsghdr         = 0x60
+@@ -303,7 +296,7 @@ type IfData struct {
+ 	Link_state   uint8
+ 	Mtu          uint32
+ 	Metric       uint32
+-	Pad          uint32
++	Rdomain      uint32
+ 	Baudrate     uint64
+ 	Ipackets     uint64
+ 	Ierrors      uint64
+@@ -315,8 +308,10 @@ type IfData struct {
+ 	Imcasts      uint64
+ 	Omcasts      uint64
+ 	Iqdrops      uint64
++	Oqdrops      uint64
+ 	Noproto      uint64
+ 	Capabilities uint32
++	_            [4]byte
+ 	Lastchange   Timeval
+ }
+ 
+@@ -341,7 +336,7 @@ type IfAnnounceMsghdr struct {
+ 	Hdrlen  uint16
+ 	Index   uint16
+ 	What    uint16
+-	Name    [16]uint8
++	Name    [16]int8
+ }
+ 
+ type RtMsghdr struct {
+@@ -411,11 +406,11 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    BpfTimeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  BpfTimeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [2]byte
+ }
+ 
+ type BpfTimeval struct {
+@@ -433,7 +428,145 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x4
+ 	AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++	Pagesize           int32
++	Pagemask           int32
++	Pageshift          int32
++	Npages             int32
++	Free               int32
++	Active             int32
++	Inactive           int32
++	Paging             int32
++	Wired              int32
++	Zeropages          int32
++	Reserve_pagedaemon int32
++	Reserve_kernel     int32
++	Unused01           int32
++	Vnodepages         int32
++	Vtextpages         int32
++	Freemin            int32
++	Freetarg           int32
++	Inactarg           int32
++	Wiredmax           int32
++	Anonmin            int32
++	Vtextmin           int32
++	Vnodemin           int32
++	Anonminpct         int32
++	Vtextminpct        int32
++	Vnodeminpct        int32
++	Nswapdev           int32
++	Swpages            int32
++	Swpginuse          int32
++	Swpgonly           int32
++	Nswget             int32
++	Nanon              int32
++	Unused05           int32
++	Unused06           int32
++	Faults             int32
++	Traps              int32
++	Intrs              int32
++	Swtch              int32
++	Softs              int32
++	Syscalls           int32
++	Pageins            int32
++	Unused07           int32
++	Unused08           int32
++	Pgswapin           int32
++	Pgswapout          int32
++	Forks              int32
++	Forks_ppwait       int32
++	Forks_sharevm      int32
++	Pga_zerohit        int32
++	Pga_zeromiss       int32
++	Unused09           int32
++	Fltnoram           int32
++	Fltnoanon          int32
++	Fltnoamap          int32
++	Fltpgwait          int32
++	Fltpgrele          int32
++	Fltrelck           int32
++	Fltrelckok         int32
++	Fltanget           int32
++	Fltanretry         int32
++	Fltamcopy          int32
++	Fltnamap           int32
++	Fltnomap           int32
++	Fltlget            int32
++	Fltget             int32
++	Flt_anon           int32
++	Flt_acow           int32
++	Flt_obj            int32
++	Flt_prcopy         int32
++	Flt_przero         int32
++	Pdwoke             int32
++	Pdrevs             int32
++	Pdswout            int32
++	Pdfreed            int32
++	Pdscans            int32
++	Pdanscan           int32
++	Pdobscan           int32
++	Pdreact            int32
++	Pdbusy             int32
++	Pdpageouts         int32
++	Pdpending          int32
++	Pddeact            int32
++	Unused11           int32
++	Unused12           int32
++	Unused13           int32
++	Fpswtch            int32
++	Kmapent            int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  int32
++}
+diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+similarity index 58%
+copy from vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
+copy to vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+index 46fe9490..4e158746 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go
+@@ -1,16 +1,16 @@
+-// Created by cgo -godefs - DO NOT EDIT
+-// cgo -godefs types_openbsd.go
++// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go
++// Code generated by the command above; see README.md. DO NOT EDIT.
+ 
+-// +build amd64,openbsd
++// +build arm64,openbsd
+ 
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ )
+ 
+ type (
+@@ -56,48 +56,29 @@ type Rlimit struct {
+ 
+ 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
++	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 int32
++	Flags   uint32
++	Gen     uint32
++	_       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
+@@ -116,7 +97,7 @@ type Statfs_t struct {
+ 	F_mntonname   [90]int8
+ 	F_mntfromname [90]int8
+ 	F_mntfromspec [90]int8
+-	Pad_cgo_1     [2]byte
++	_             [2]byte
+ 	Mount_info    [160]byte
+ }
+ 
+@@ -129,19 +110,23 @@ type Flock_t struct {
+ }
+ 
+ type Dirent struct {
+-	Fileno       uint64
+-	Off          int64
+-	Reclen       uint16
+-	Type         uint8
+-	Namlen       uint8
+-	X__d_padding [4]uint8
+-	Name         [256]int8
++	Fileno uint64
++	Off    int64
++	Reclen uint16
++	Type   uint8
++	Namlen uint8
++	_      [4]uint8
++	Name   [256]int8
+ }
+ 
+ type Fsid struct {
+ 	Val [2]int32
+ }
+ 
++const (
++	PathMax = 0x400
++)
++
+ type RawSockaddrInet4 struct {
+ 	Len    uint8
+ 	Family uint8
+@@ -212,10 +197,8 @@ type IPv6Mreq struct {
+ 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
+@@ -277,8 +260,8 @@ type FdSet struct {
+ }
+ 
+ const (
+-	SizeofIfMsghdr         = 0xf8
+-	SizeofIfData           = 0xe0
++	SizeofIfMsghdr         = 0xa8
++	SizeofIfData           = 0x90
+ 	SizeofIfaMsghdr        = 0x18
+ 	SizeofIfAnnounceMsghdr = 0x1a
+ 	SizeofRtMsghdr         = 0x60
+@@ -307,7 +290,7 @@ type IfData struct {
+ 	Link_state   uint8
+ 	Mtu          uint32
+ 	Metric       uint32
+-	Pad          uint32
++	Rdomain      uint32
+ 	Baudrate     uint64
+ 	Ipackets     uint64
+ 	Ierrors      uint64
+@@ -319,12 +302,10 @@ type IfData struct {
+ 	Imcasts      uint64
+ 	Omcasts      uint64
+ 	Iqdrops      uint64
++	Oqdrops      uint64
+ 	Noproto      uint64
+ 	Capabilities uint32
+-	Pad_cgo_0    [4]byte
+ 	Lastchange   Timeval
+-	Mclpool      [7]Mclpool
+-	Pad_cgo_1    [4]byte
+ }
+ 
+ type IfaMsghdr struct {
+@@ -385,13 +366,7 @@ type RtMetrics struct {
+ 	Pad      uint32
+ }
+ 
+-type Mclpool struct {
+-	Grown int32
+-	Alive uint16
+-	Hwm   uint16
+-	Cwm   uint16
+-	Lwm   uint16
+-}
++type Mclpool struct{}
+ 
+ const (
+ 	SizeofBpfVersion = 0x4
+@@ -412,9 +387,8 @@ type BpfStat struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -425,11 +399,11 @@ type BpfInsn struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    BpfTimeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  BpfTimeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [2]byte
+ }
+ 
+ type BpfTimeval struct {
+@@ -447,7 +421,145 @@ type Termios struct {
+ 	Ospeed int32
+ }
+ 
++type Winsize struct {
++	Row    uint16
++	Col    uint16
++	Xpixel uint16
++	Ypixel uint16
++}
++
+ const (
+ 	AT_FDCWD            = -0x64
++	AT_SYMLINK_FOLLOW   = 0x4
+ 	AT_SYMLINK_NOFOLLOW = 0x2
+ )
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
++
++type Sigset_t uint32
++
++type Utsname struct {
++	Sysname  [256]byte
++	Nodename [256]byte
++	Release  [256]byte
++	Version  [256]byte
++	Machine  [256]byte
++}
++
++const SizeofUvmexp = 0x158
++
++type Uvmexp struct {
++	Pagesize           int32
++	Pagemask           int32
++	Pageshift          int32
++	Npages             int32
++	Free               int32
++	Active             int32
++	Inactive           int32
++	Paging             int32
++	Wired              int32
++	Zeropages          int32
++	Reserve_pagedaemon int32
++	Reserve_kernel     int32
++	Unused01           int32
++	Vnodepages         int32
++	Vtextpages         int32
++	Freemin            int32
++	Freetarg           int32
++	Inactarg           int32
++	Wiredmax           int32
++	Anonmin            int32
++	Vtextmin           int32
++	Vnodemin           int32
++	Anonminpct         int32
++	Vtextminpct        int32
++	Vnodeminpct        int32
++	Nswapdev           int32
++	Swpages            int32
++	Swpginuse          int32
++	Swpgonly           int32
++	Nswget             int32
++	Nanon              int32
++	Unused05           int32
++	Unused06           int32
++	Faults             int32
++	Traps              int32
++	Intrs              int32
++	Swtch              int32
++	Softs              int32
++	Syscalls           int32
++	Pageins            int32
++	Unused07           int32
++	Unused08           int32
++	Pgswapin           int32
++	Pgswapout          int32
++	Forks              int32
++	Forks_ppwait       int32
++	Forks_sharevm      int32
++	Pga_zerohit        int32
++	Pga_zeromiss       int32
++	Unused09           int32
++	Fltnoram           int32
++	Fltnoanon          int32
++	Fltnoamap          int32
++	Fltpgwait          int32
++	Fltpgrele          int32
++	Fltrelck           int32
++	Fltrelckok         int32
++	Fltanget           int32
++	Fltanretry         int32
++	Fltamcopy          int32
++	Fltnamap           int32
++	Fltnomap           int32
++	Fltlget            int32
++	Fltget             int32
++	Flt_anon           int32
++	Flt_acow           int32
++	Flt_obj            int32
++	Flt_prcopy         int32
++	Flt_przero         int32
++	Pdwoke             int32
++	Pdrevs             int32
++	Pdswout            int32
++	Pdfreed            int32
++	Pdscans            int32
++	Pdanscan           int32
++	Pdobscan           int32
++	Pdreact            int32
++	Pdbusy             int32
++	Pdpageouts         int32
++	Pdpending          int32
++	Pddeact            int32
++	Unused11           int32
++	Unused12           int32
++	Unused13           int32
++	Fpswtch            int32
++	Kmapent            int32
++}
++
++const SizeofClockinfo = 0x14
++
++type Clockinfo struct {
++	Hz      int32
++	Tick    int32
++	Tickadj int32
++	Stathz  int32
++	Profhz  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
+index 92336f9f..23ed9fe5 100644
+--- a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
++++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
+@@ -6,11 +6,11 @@
+ package unix
+ 
+ const (
+-	sizeofPtr      = 0x8
+-	sizeofShort    = 0x2
+-	sizeofInt      = 0x4
+-	sizeofLong     = 0x8
+-	sizeofLongLong = 0x8
++	SizeofPtr      = 0x8
++	SizeofShort    = 0x2
++	SizeofInt      = 0x4
++	SizeofLong     = 0x8
++	SizeofLongLong = 0x8
+ 	PathMax        = 0x400
+ 	MaxHostNameLen = 0x100
+ )
+@@ -75,58 +75,41 @@ type Rlimit struct {
+ 
+ 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
++	Dev     uint64
++	Ino     uint64
++	Mode    uint32
++	Nlink   uint32
++	Uid     uint32
++	Gid     uint32
++	Rdev    uint64
++	Size    int64
++	Atim    Timespec
++	Mtim    Timespec
++	Ctim    Timespec
++	Blksize int32
++	_       [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   int16
++	Whence int16
++	_      [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
++	Ino    uint64
++	Off    int64
++	Reclen uint16
++	Name   [1]int8
++	_      [5]byte
+ }
+ 
+ type _Fsblkcnt_t uint64
+@@ -213,13 +196,13 @@ type IPv6Mreq struct {
+ type Msghdr struct {
+ 	Name         *byte
+ 	Namelen      uint32
+-	Pad_cgo_0    [4]byte
++	_            [4]byte
+ 	Iov          *Iovec
+ 	Iovlen       int32
+-	Pad_cgo_1    [4]byte
++	_            [4]byte
+ 	Accrights    *int8
+ 	Accrightslen int32
+-	Pad_cgo_2    [4]byte
++	_            [4]byte
+ }
+ 
+ type Cmsghdr struct {
+@@ -228,6 +211,12 @@ type Cmsghdr struct {
+ 	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
+@@ -253,6 +242,7 @@ const (
+ 	SizeofIPv6Mreq         = 0x14
+ 	SizeofMsghdr           = 0x30
+ 	SizeofCmsghdr          = 0xc
++	SizeofInet4Pktinfo     = 0xc
+ 	SizeofInet6Pktinfo     = 0x14
+ 	SizeofIPv6MTUInfo      = 0x24
+ 	SizeofICMPv6Filter     = 0x20
+@@ -263,19 +253,19 @@ type FdSet struct {
+ }
+ 
+ type Utsname struct {
+-	Sysname  [257]int8
+-	Nodename [257]int8
+-	Release  [257]int8
+-	Version  [257]int8
+-	Machine  [257]int8
++	Sysname  [257]byte
++	Nodename [257]byte
++	Release  [257]byte
++	Version  [257]byte
++	Machine  [257]byte
+ }
+ 
+ type Ustat_t struct {
+-	Tfree     int64
+-	Tinode    uint64
+-	Fname     [6]int8
+-	Fpack     [6]int8
+-	Pad_cgo_0 [4]byte
++	Tfree  int64
++	Tinode uint64
++	Fname  [6]int8
++	Fpack  [6]int8
++	_      [4]byte
+ }
+ 
+ const (
+@@ -295,21 +285,21 @@ const (
+ )
+ 
+ type IfMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Data      IfData
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [2]byte
++	Data    IfData
+ }
+ 
+ type IfData struct {
+ 	Type       uint8
+ 	Addrlen    uint8
+ 	Hdrlen     uint8
+-	Pad_cgo_0  [1]byte
++	_          [1]byte
+ 	Mtu        uint32
+ 	Metric     uint32
+ 	Baudrate   uint32
+@@ -328,30 +318,30 @@ type IfData struct {
+ }
+ 
+ type IfaMsghdr struct {
+-	Msglen    uint16
+-	Version   uint8
+-	Type      uint8
+-	Addrs     int32
+-	Flags     int32
+-	Index     uint16
+-	Pad_cgo_0 [2]byte
+-	Metric    int32
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Addrs   int32
++	Flags   int32
++	Index   uint16
++	_       [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
++	Msglen  uint16
++	Version uint8
++	Type    uint8
++	Index   uint16
++	_       [2]byte
++	Flags   int32
++	Addrs   int32
++	Pid     int32
++	Seq     int32
++	Errno   int32
++	Use     int32
++	Inits   uint32
++	Rmx     RtMetrics
+ }
+ 
+ type RtMetrics struct {
+@@ -388,9 +378,9 @@ type BpfStat struct {
+ }
+ 
+ type BpfProgram struct {
+-	Len       uint32
+-	Pad_cgo_0 [4]byte
+-	Insns     *BpfInsn
++	Len   uint32
++	_     [4]byte
++	Insns *BpfInsn
+ }
+ 
+ type BpfInsn struct {
+@@ -406,32 +396,30 @@ type BpfTimeval struct {
+ }
+ 
+ type BpfHdr struct {
+-	Tstamp    BpfTimeval
+-	Caplen    uint32
+-	Datalen   uint32
+-	Hdrlen    uint16
+-	Pad_cgo_0 [2]byte
++	Tstamp  BpfTimeval
++	Caplen  uint32
++	Datalen uint32
++	Hdrlen  uint16
++	_       [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
++	Iflag uint32
++	Oflag uint32
++	Cflag uint32
++	Lflag uint32
++	Cc    [19]uint8
++	_     [1]byte
+ }
+ 
+ type Termio struct {
+-	Iflag     uint16
+-	Oflag     uint16
+-	Cflag     uint16
+-	Lflag     uint16
+-	Line      int8
+-	Cc        [8]uint8
+-	Pad_cgo_0 [1]byte
++	Iflag uint16
++	Oflag uint16
++	Cflag uint16
++	Lflag uint16
++	Line  int8
++	Cc    [8]uint8
++	_     [1]byte
+ }
+ 
+ type Winsize struct {
+@@ -440,3 +428,22 @@ type Winsize struct {
+ 	Xpixel uint16
+ 	Ypixel uint16
+ }
++
++type PollFd struct {
++	Fd      int32
++	Events  int16
++	Revents int16
++}
++
++const (
++	POLLERR    = 0x8
++	POLLHUP    = 0x10
++	POLLIN     = 0x1
++	POLLNVAL   = 0x20
++	POLLOUT    = 0x4
++	POLLPRI    = 0x2
++	POLLRDBAND = 0x80
++	POLLRDNORM = 0x40
++	POLLWRBAND = 0x100
++	POLLWRNORM = 0x4
++)
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb b/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb
index 496224a..0da2c66 100644
--- a/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb
+++ b/poky/meta/recipes-devtools/go/go-dep_0.5.4.bb
@@ -8,6 +8,7 @@
            file://0001-Add-support-for-mips-mips64.patch;patchdir=src/github.com/golang/dep \
            file://0001-bolt_riscv64-Add-support-for-riscv64.patch;patchdir=src/github.com/golang/dep \
           "
+SRC_URI_append_riscv64 = " file://0001-Update-sys-module-to-latest.patch;patchdir=src/github.com/golang/dep "
 
 SRCREV = "1f7c19e5f52f49ffb9f956f64c010be14683468b"
 
diff --git a/poky/meta/recipes-devtools/go/go-runtime_1.14.bb b/poky/meta/recipes-devtools/go/go-runtime_1.14.bb
index 43b68b4..4eeee65 100644
--- a/poky/meta/recipes-devtools/go/go-runtime_1.14.bb
+++ b/poky/meta/recipes-devtools/go/go-runtime_1.14.bb
@@ -1,2 +1,3 @@
+export CGO_ENABLED_riscv64 = ""
 require go-${PV}.inc
 require go-runtime.inc
diff --git a/poky/meta/recipes-devtools/go/go_1.14.bb b/poky/meta/recipes-devtools/go/go_1.14.bb
index 5d40cf9..bc90a13 100644
--- a/poky/meta/recipes-devtools/go/go_1.14.bb
+++ b/poky/meta/recipes-devtools/go/go_1.14.bb
@@ -2,7 +2,7 @@
 require go-target.inc
 
 export GOBUILDMODE=""
-
+export CGO_ENABLED_riscv64 = ""
 # Add pie to GOBUILDMODE to satisfy "textrel" QA checking, but mips/riscv
 # doesn't support -buildmode=pie, so skip the QA checking for mips/riscv and its
 # variants.
diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch b/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch
deleted file mode 100644
index d43f7e1..0000000
--- a/poky/meta/recipes-devtools/mtd/mtd-utils/0001-mtd-utils-Fix-return-value-of-ubiformat.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 4d19bffcfd66e25d3ee74536ae2d2da7ad52e8e2 Mon Sep 17 00:00:00 2001
-From: Barry Grussling <barry@grussling.com>
-Date: Sun, 12 Jan 2020 12:33:32 -0800
-Subject: [PATCH] mtd-utils: Fix return value of ubiformat
-Organization: O.S. Systems Software LTDA.
-
-This changeset fixes a feature regression in ubiformat.  Older versions of
-ubiformat, when invoked with a flash-image, would return 0 in the case no error
-was encountered.  Upon upgrading to latest, it was discovered that ubiformat
-returned 255 even without encountering an error condition.
-
-This changeset corrects the above issue and causes ubiformat, when given an
-image file, to return 0 when no errors are detected.
-
-Tested by running through my loading scripts and verifying ubiformat returned
-0.
-
-Upstream-Status: Backport [2.1.2]
-
-Signed-off-by: Barry Grussling <barry@grussling.com>
-Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- ubi-utils/ubiformat.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
-index a90627c..5377b12 100644
---- a/ubi-utils/ubiformat.c
-+++ b/ubi-utils/ubiformat.c
-@@ -550,6 +550,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
- 	struct ubi_vtbl_record *vtbl;
- 	int eb1 = -1, eb2 = -1;
- 	long long ec1 = -1, ec2 = -1;
-+	int ret = -1;
- 
- 	write_size = UBI_EC_HDR_SIZE + mtd->subpage_size - 1;
- 	write_size /= mtd->subpage_size;
-@@ -643,8 +644,10 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
- 	if (!args.quiet && !args.verbose)
- 		printf("\n");
- 
--	if (novtbl)
-+	if (novtbl) {
-+		ret = 0;
- 		goto out_free;
-+	}
- 
- 	if (eb1 == -1 || eb2 == -1) {
- 		errmsg("no eraseblocks for volume table");
-@@ -669,7 +672,7 @@ static int format(libmtd_t libmtd, const struct mtd_dev_info *mtd,
- 
- out_free:
- 	free(hdr);
--	return -1;
-+	return ret;
- }
- 
- int main(int argc, char * const argv[])
--- 
-2.27.0
-
diff --git a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
index d1658a7..9181413 100644
--- a/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
+++ b/poky/meta/recipes-devtools/mtd/mtd-utils_git.bb
@@ -10,13 +10,12 @@
 DEPENDS = "zlib e2fsprogs util-linux"
 RDEPENDS_mtd-utils-tests += "bash"
 
-PV = "2.1.1"
+PV = "2.1.2"
 
-SRCREV = "4443221ce9b88440cd9f5bb78e6fe95621d36c8a"
+SRCREV = "7b986779342021bda87c04da3bf729718736d8ab"
 SRC_URI = "git://git.infradead.org/mtd-utils.git \
            file://add-exclusion-to-mkfs-jffs2-git-2.patch \
-           file://0001-mtd-utils-Fix-return-value-of-ubiformat.patch \
-"
+           "
 
 S = "${WORKDIR}/git/"
 
diff --git a/poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch b/poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch
new file mode 100644
index 0000000..b52dc5b
--- /dev/null
+++ b/poky/meta/recipes-devtools/nasm/nasm/0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 287964d54b64bed833adba307e1d920f8fcf0cbc Mon Sep 17 00:00:00 2001
+From: Ozkan Sezer <sezero@users.sourceforge.net>
+Date: Wed, 7 Aug 2019 15:50:50 +0300
+Subject: [PATCH] fix pa_add_headers.m4 for development versions of autoconf
+ (bug 3392471)
+
+Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
+---
+ autoconf/m4/pa_add_headers.m4 | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/aclocal.m4 b/aclocal.m4
+index 1af2dd5d..6ce3e6c1 100644
+--- a/aclocal.m4
++++ b/aclocal.m4
+@@ -169,7 +169,8 @@ dnl --------------------------------------------------------------------------
+ AC_DEFUN(_PA_ADD_HEADER,
+ [AC_CHECK_HEADERS([$1],[ac_includes_default="$ac_includes_default
+ #include <$1>"
+-])])
++])
++])
+ 
+ AC_DEFUN(PA_ADD_HEADERS,
+ [m4_map_args_w([$1],[_PA_ADD_HEADER(],[)])])
diff --git a/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb b/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb
index f8a8d76..c40be8f 100644
--- a/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb
+++ b/poky/meta/recipes-devtools/nasm/nasm_2.14.02.bb
@@ -8,6 +8,7 @@
            file://CVE-2019-14248.patch \
            file://0001-stdlib-Add-strlcat.patch \
            file://0002-Add-debug-prefix-map-option.patch \
+           file://0001-fix-pa_add_headers.m4-for-development-versions-of-au.patch \
            "
 
 SRC_URI[md5sum] = "3f489aa48ad2aa1f967dc5e293bbd06f"
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index fcadfd9..9a22304 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -6,7 +6,7 @@
            file://fallback-group \
            "
 
-SRCREV = "067950bd9415fafcafb2bf32c0e10df4f2ac936c"
+SRCREV = "8efb082863ff0ceec7b7e46f9a44750e12f48039"
 S = "${WORKDIR}/git"
 PV = "1.9.0+git${SRCPV}"
 
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index a0cd2a5..b1e71f3 100644
--- a/poky/meta/recipes-devtools/python/python-cython.inc
+++ b/poky/meta/recipes-devtools/python/python-cython.inc
@@ -7,7 +7,7 @@
 PYPI_PACKAGE = "Cython"
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[sha256sum] = "22d91af5fc2253f717a1b80b8bb45acb655f643611983fd6f782b9423f8171c7"
+SRC_URI[sha256sum] = "e57acb89bd55943c8d8bf813763d20b9099cc7165c0f16b707631a7654be9cad"
 UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
 
 inherit pypi
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb b/poky/meta/recipes-devtools/python/python3-cython_0.29.21.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-cython_0.29.20.bb
rename to poky/meta/recipes-devtools/python/python3-cython_0.29.21.bb
diff --git a/poky/meta/recipes-devtools/python/python3-git_3.1.3.bb b/poky/meta/recipes-devtools/python/python3-git_3.1.7.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-git_3.1.3.bb
rename to poky/meta/recipes-devtools/python/python3-git_3.1.7.bb
index 064868d..6d1fc4b 100644
--- a/poky/meta/recipes-devtools/python/python3-git_3.1.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-git_3.1.7.bb
@@ -12,7 +12,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a"
+SRC_URI[sha256sum] = "2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858"
 
 DEPENDS += " ${PYTHON_PN}-gitdb"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb
deleted file mode 100644
index 8f19984..0000000
--- a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.7.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require python-pycryptodome.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2"
-
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb
new file mode 100644
index 0000000..46e1220
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.9.8.bb
@@ -0,0 +1,5 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "0e24171cf01021bc5dc17d6a9d4f33a048f09d62cc3f62541e95ef104588bda4"
+
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb
similarity index 69%
rename from poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb
rename to poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb
index abb03b9..035c7fa 100644
--- a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.9.8.bb
@@ -1,7 +1,7 @@
 require python-pycryptodome.inc
 inherit setuptools3
 
-SRC_URI[sha256sum] = "50163324834edd0c9ce3e4512ded3e221c969086e10fdd5d3fdcaadac5e24a78"
+SRC_URI[sha256sum] = "48cc2cfc251f04a6142badeb666d1ff49ca6fdfc303fd72579f62b768aaa52b9"
 
 FILES_${PN}-tests = " \
     ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
diff --git a/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch b/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch
new file mode 100644
index 0000000..ee3d645
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3/0001-configure.ac-define-a-path-for-profile-data.patch
@@ -0,0 +1,42 @@
+From 5e94e315119117898ce1a2798641848f61d796b1 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 9 Jul 2020 07:58:44 +0000
+Subject: [PATCH] configure.ac: define a path for profile data
+
+There comes below error when use ccache 3.7.10 to compile python3
+and check [1] for more details.
+ | Python-3.8.3/Modules/_contextvarsmodule.c:43:1: error: source locations for function 'PyInit__contextvars' have changed, the profile data may be out of date [-Werror=coverage-mismatch]
+
+That's because the logic for profile directory changes a little in
+[2] after ccache upgrades to 3.7.10.
+
+So define a profile directory path accordingly to fix the above error.
+
+[1] https://github.com/ccache/ccache/issues/615
+[2] https://github.com/ccache/ccache/commit/91a2954eb47b4a106e2be6cf611917b895108e35
+
+Upstream-Status: Submitted [https://github.com/python/cpython/pull/21408]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 08fe397..bb15bda 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1332,8 +1332,8 @@ case $cc_basename in
+         fi
+         ;;
+       *)
+-        PGO_PROF_GEN_FLAG="-fprofile-generate"
+-        PGO_PROF_USE_FLAG="-fprofile-use -fprofile-correction"
++        PGO_PROF_GEN_FLAG="-fprofile-generate=$(pwd)"
++        PGO_PROF_USE_FLAG="-fprofile-use=$(pwd) -fprofile-correction"
+         LLVM_PROF_MERGER="true"
+         LLVM_PROF_FILE=""
+         ;;
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-devtools/python/python3_3.8.3.bb b/poky/meta/recipes-devtools/python/python3_3.8.3.bb
index a7cfbad..7e0f35c 100644
--- a/poky/meta/recipes-devtools/python/python3_3.8.3.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.8.3.bb
@@ -32,6 +32,7 @@
            file://0001-configure.ac-fix-LIBPL.patch \
            file://0001-python3-Do-not-hardcode-lib-for-distutils.patch \
            file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \
+           file://0001-configure.ac-define-a-path-for-profile-data.patch \
            "
 
 SRC_URI_append_class-native = " \
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index d41cc8f..b1c822b 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -32,6 +32,10 @@
 	   file://CVE-2020-13361.patch \
 	   file://find_datadir.patch \
 	   file://CVE-2020-10761.patch \
+	   file://CVE-2020-13362.patch \
+	   file://CVE-2020-13659.patch \
+	   file://CVE-2020-13800.patch \
+	   file://CVE-2020-13791.patch \
 	   "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
@@ -140,7 +144,7 @@
 PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
 
 PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,libsdl2"
-PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap-ng attr,"
+PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr --enable-cap-ng,--disable-virtfs,libcap-ng attr,"
 PACKAGECONFIG[aio] = "--enable-linux-aio,--disable-linux-aio,libaio,"
 PACKAGECONFIG[xfs] = "--enable-xfsctl,--disable-xfsctl,xfsprogs,"
 PACKAGECONFIG[xen] = "--enable-xen,--disable-xen,xen-tools,xen-tools-libxenstore xen-tools-libxenctrl xen-tools-libxenguest"
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch
new file mode 100644
index 0000000..af8d4ba
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13362.patch
@@ -0,0 +1,55 @@
+From f50ab86a2620bd7e8507af865b164655ee921661 Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Thu, 14 May 2020 00:55:38 +0530
+Subject: [PATCH] megasas: use unsigned type for reply_queue_head and check
+ index
+
+A guest user may set 'reply_queue_head' field of MegasasState to
+a negative value. Later in 'megasas_lookup_frame' it is used to
+index into s->frames[] array. Use unsigned type to avoid OOB
+access issue.
+
+Also check that 'index' value stays within s->frames[] bounds
+through the while() loop in 'megasas_lookup_frame' to avoid OOB
+access.
+
+Reported-by: Ren Ding <rding@gatech.edu>
+Reported-by: Hanqing Zhao <hanqing@gatech.edu>
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Acked-by: Alexander Bulekov <alxndr@bu.edu>
+Message-Id: <20200513192540.1583887-2-ppandit@redhat.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+
+Upstream-Status: Backport [f50ab86a2620bd7e8507af865b164655ee921661]
+CVE: CVE-2020-13362
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/scsi/megasas.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hw/scsi/megasas.c b/hw/scsi/megasas.c
+index af18c88b65..6ce598cd69 100644
+--- a/hw/scsi/megasas.c
++++ b/hw/scsi/megasas.c
+@@ -112,7 +112,7 @@ typedef struct MegasasState {
+     uint64_t reply_queue_pa;
+     void *reply_queue;
+     int reply_queue_len;
+-    int reply_queue_head;
++    uint16_t reply_queue_head;
+     int reply_queue_tail;
+     uint64_t consumer_pa;
+     uint64_t producer_pa;
+@@ -445,7 +445,7 @@ static MegasasCmd *megasas_lookup_frame(MegasasState *s,
+ 
+     index = s->reply_queue_head;
+ 
+-    while (num < s->fw_cmds) {
++    while (num < s->fw_cmds && index < MEGASAS_MAX_FRAMES) {
+         if (s->frames[index].pa && s->frames[index].pa == frame) {
+             cmd = &s->frames[index];
+             break;
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch
new file mode 100644
index 0000000..4d12ae8
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13659.patch
@@ -0,0 +1,58 @@
+From 77f55eac6c433e23e82a1b88b2d74f385c4c7d82 Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Tue, 26 May 2020 16:47:43 +0530
+Subject: [PATCH] exec: set map length to zero when returning NULL
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When mapping physical memory into host's virtual address space,
+'address_space_map' may return NULL if BounceBuffer is in_use.
+Set and return '*plen = 0' to avoid later NULL pointer dereference.
+
+Reported-by: Alexander Bulekov <alxndr@bu.edu>
+Fixes: https://bugs.launchpad.net/qemu/+bug/1878259
+Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
+Suggested-by: Peter Maydell <peter.maydell@linaro.org>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Message-Id: <20200526111743.428367-1-ppandit@redhat.com>
+Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+
+Upstream-Status: Backport [77f55eac6c433e23e82a1b88b2d74f385c4c7d82]
+CVE: CVE-2020-13659
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ exec.c                | 1 +
+ include/exec/memory.h | 3 ++-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/exec.c b/exec.c
+index 9cbde85d8c..778263f1c6 100644
+--- a/exec.c
++++ b/exec.c
+@@ -3540,6 +3540,7 @@ void *address_space_map(AddressSpace *as,
+ 
+     if (!memory_access_is_direct(mr, is_write)) {
+         if (atomic_xchg(&bounce.in_use, true)) {
++            *plen = 0;
+             return NULL;
+         }
+         /* Avoid unbounded allocations */
+diff --git a/include/exec/memory.h b/include/exec/memory.h
+index bd7fdd6081..af8ca7824e 100644
+--- a/include/exec/memory.h
++++ b/include/exec/memory.h
+@@ -2314,7 +2314,8 @@ bool address_space_access_valid(AddressSpace *as, hwaddr addr, hwaddr len,
+ /* address_space_map: map a physical memory region into a host virtual address
+  *
+  * May map a subset of the requested range, given by and returned in @plen.
+- * May return %NULL if resources needed to perform the mapping are exhausted.
++ * May return %NULL and set *@plen to zero(0), if resources needed to perform
++ * the mapping are exhausted.
+  * Use only for reads OR writes - not for read-modify-write operations.
+  * Use cpu_register_map_client() to know when retrying the map operation is
+  * likely to succeed.
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch
new file mode 100644
index 0000000..049dab9
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13791.patch
@@ -0,0 +1,53 @@
+From f7d6a635fa3b7797f9d072e280f065bf3cfcd24d Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Thu, 4 Jun 2020 17:05:25 +0530
+Subject: [PATCH] pci: assert configuration access is within bounds
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While accessing PCI configuration bytes, assert that
+'address + len' is within PCI configuration space.
+
+Generally it is within bounds. This is more of a defensive
+assert, in case a buggy device was to send 'address' which
+may go out of bounds.
+
+Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Message-Id: <20200604113525.58898-1-ppandit@redhat.com>
+Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
+Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
+
+Upstream-Status: Backport [f7d6a635fa3b7797f9d072e280f065bf3cfcd24d]
+CVE: CVE-2020-13791
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/pci/pci.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/hw/pci/pci.c b/hw/pci/pci.c
+index 70c66965f5..7bf2ae6d92 100644
+--- a/hw/pci/pci.c
++++ b/hw/pci/pci.c
+@@ -1381,6 +1381,8 @@ uint32_t pci_default_read_config(PCIDevice *d,
+ {
+     uint32_t val = 0;
+ 
++    assert(address + len <= pci_config_size(d));
++
+     if (pci_is_express_downstream_port(d) &&
+         ranges_overlap(address, len, d->exp.exp_cap + PCI_EXP_LNKSTA, 2)) {
+         pcie_sync_bridge_lnk(d);
+@@ -1394,6 +1396,8 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val_in, int
+     int i, was_irq_disabled = pci_irq_disabled(d);
+     uint32_t val = val_in;
+ 
++    assert(addr + l <= pci_config_size(d));
++
+     for (i = 0; i < l; val >>= 8, ++i) {
+         uint8_t wmask = d->wmask[addr + i];
+         uint8_t w1cmask = d->w1cmask[addr + i];
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch
new file mode 100644
index 0000000..52bfafb
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-13800.patch
@@ -0,0 +1,63 @@
+From a98610c429d52db0937c1e48659428929835c455 Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Thu, 4 Jun 2020 14:38:30 +0530
+Subject: [PATCH] ati-vga: check mm_index before recursive call
+ (CVE-2020-13800)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While accessing VGA registers via ati_mm_read/write routines,
+a guest may set 's->regs.mm_index' such that it leads to infinite
+recursion. Check mm_index value to avoid such recursion. Log an
+error message for wrong values.
+
+Reported-by: Ren Ding <rding@gatech.edu>
+Reported-by: Hanqing Zhao <hanqing@gatech.edu>
+Reported-by: Yi Ren <c4tren@gmail.com>
+Message-id: 20200604090830.33885-1-ppandit@redhat.com
+Suggested-by: BALATON Zoltan <balaton@eik.bme.hu>
+Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+
+Upstream-Status: Backport [a98610c429d52db0937c1e48659428929835c455]
+CVE: CVE-2020-13800
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ hw/display/ati.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/hw/display/ati.c b/hw/display/ati.c
+index 065f197678..67604e68de 100644
+--- a/hw/display/ati.c
++++ b/hw/display/ati.c
+@@ -285,8 +285,11 @@ static uint64_t ati_mm_read(void *opaque, hwaddr addr, unsigned int size)
+             if (idx <= s->vga.vram_size - size) {
+                 val = ldn_le_p(s->vga.vram_ptr + idx, size);
+             }
+-        } else {
++        } else if (s->regs.mm_index > MM_DATA + 3) {
+             val = ati_mm_read(s, s->regs.mm_index + addr - MM_DATA, size);
++        } else {
++            qemu_log_mask(LOG_GUEST_ERROR,
++                "ati_mm_read: mm_index too small: %u\n", s->regs.mm_index);
+         }
+         break;
+     case BIOS_0_SCRATCH ... BUS_CNTL - 1:
+@@ -520,8 +523,11 @@ static void ati_mm_write(void *opaque, hwaddr addr,
+             if (idx <= s->vga.vram_size - size) {
+                 stn_le_p(s->vga.vram_ptr + idx, size, data);
+             }
+-        } else {
++        } else if (s->regs.mm_index > MM_DATA + 3) {
+             ati_mm_write(s, s->regs.mm_index + addr - MM_DATA, data, size);
++        } else {
++            qemu_log_mask(LOG_GUEST_ERROR,
++                "ati_mm_write: mm_index too small: %u\n", s->regs.mm_index);
+         }
+         break;
+     case BIOS_0_SCRATCH ... BUS_CNTL - 1:
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb
index cbe1acf..b5a0ac9 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.15.1.bb
@@ -67,7 +67,7 @@
 # Disable dbus for native, so that rpm doesn't attempt to inhibit shutdown via session dbus even when plugins support is enabled.
 # Also disable plugins by default for native.
 EXTRA_OECONF_append_class-native = " --sysconfdir=/etc --localstatedir=/var --disable-plugins"
-EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --localstatedir=/var --disable-plugins"
+EXTRA_OECONF_append_class-nativesdk = " --sysconfdir=/etc --disable-plugins"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb b/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb
index b988415..452a025 100644
--- a/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb
+++ b/poky/meta/recipes-devtools/subversion/subversion_1.14.0.bb
@@ -59,4 +59,4 @@
 
 RDEPENDS_${PN} = "serf"
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
