diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py
index 3902ccc..805ed92 100644
--- a/poky/bitbake/lib/bb/command.py
+++ b/poky/bitbake/lib/bb/command.py
@@ -396,7 +396,7 @@
         def sortkey(x):
             vfn, _ = x
             realfn, _, mc = bb.cache.virtualfn2realfn(vfn)
-            return (-command.cooker.collections[mc].calc_bbfile_priority(realfn), vfn)
+            return (-command.cooker.collections[mc].calc_bbfile_priority(realfn)[0], vfn)
 
         skipdict = OrderedDict(sorted(command.cooker.skiplist.items(), key=sortkey))
         return list(skipdict.items())
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index effd024..f6abc63 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -626,6 +626,7 @@
         current = 0
         runlist = []
         for k in fulltargetlist:
+            origk = k
             mc = ""
             if k.startswith("mc:"):
                 mc = k.split(":")[1]
@@ -635,6 +636,10 @@
                 k2 = k.split(":do_")
                 k = k2[0]
                 ktask = k2[1]
+
+            if mc not in self.multiconfigs:
+                 bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named %s" % (origk, mc))
+
             taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k)
             current += 1
             if not ktask.startswith("do_"):
@@ -670,7 +675,7 @@
                         l = k.split(':')
                         depmc = l[2]
                         if depmc not in self.multiconfigs:
-                            bb.fatal("Multiconfig dependency %s depends on nonexistent mc configuration %s" % (k,depmc))
+                            bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named configuration %s" % (k,depmc))
                         else:
                             logger.debug(1, "Adding providers for multiconfig dependency %s" % l[3])
                             taskdata[depmc].add_provider(localdata[depmc], self.recipecaches[depmc], l[3])
@@ -1588,7 +1593,7 @@
             self.show_appends_with_no_recipes()
             self.handlePrefProviders()
             for mc in self.multiconfigs:
-                self.recipecaches[mc].bbfile_priority = self.collections[mc].collection_priorities(self.recipecaches[mc].pkg_fn, self.data)
+                self.recipecaches[mc].bbfile_priority = self.collections[mc].collection_priorities(self.recipecaches[mc].pkg_fn, self.parser.mcfilelist[mc], self.data)
             self.state = state.running
 
             # Send an event listing all stamps reachable after parsing
@@ -1609,7 +1614,7 @@
             raise NothingToBuild
 
         ignore = (self.data.getVar("ASSUME_PROVIDED") or "").split()
-        for pkg in pkgs_to_build:
+        for pkg in pkgs_to_build.copy():
             if pkg in ignore:
                 parselog.warning("Explicit target \"%s\" is in ASSUME_PROVIDED, ignoring" % pkg)
             if pkg.startswith("multiconfig:"):
@@ -1704,14 +1709,11 @@
         # the shortest.  This allows nested layers to be properly evaluated.
         self.bbfile_config_priorities = sorted(priorities, key=lambda tup: tup[1], reverse=True)
 
-    def calc_bbfile_priority( self, filename, matched = None ):
+    def calc_bbfile_priority(self, filename):
         for _, _, regex, pri in self.bbfile_config_priorities:
             if regex.match(filename):
-                if matched is not None:
-                    if not regex in matched:
-                        matched.add(regex)
-                return pri
-        return 0
+                return pri, regex
+        return 0, None
 
     def get_bbfiles(self):
         """Get list of default .bb files by reading out the current directory"""
@@ -1744,7 +1746,7 @@
         config.setVar("BBFILES", " ".join(files))
 
         # Sort files by priority
-        files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem) )
+        files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem)[0] )
 
         if not len(files):
             files = self.get_bbfiles()
@@ -1866,39 +1868,62 @@
                 filelist.append(filename)
         return tuple(filelist)
 
-    def collection_priorities(self, pkgfns, d):
+    def collection_priorities(self, pkgfns, fns, d):
+        # Return the priorities of the entries in pkgfns
+        # Also check that all the regexes in self.bbfile_config_priorities are used
+        # (but to do that we need to ensure skipped recipes aren't counted, nor
+        # collections in BBFILE_PATTERN_IGNORE_EMPTY)
 
         priorities = {}
+        seen = set()
+        matched = set()
+
+        matched_regex = set()
+        unmatched_regex = set()
+        for _, _, regex, _ in self.bbfile_config_priorities:
+            unmatched_regex.add(regex)
 
         # Calculate priorities for each file
-        matched = set()
         for p in pkgfns:
             realfn, cls, mc = bb.cache.virtualfn2realfn(p)
-            priorities[p] = self.calc_bbfile_priority(realfn, matched)
+            priorities[p], regex = self.calc_bbfile_priority(realfn)
+            if regex in unmatched_regex:
+                matched_regex.add(regex)
+                unmatched_regex.remove(regex)
+            seen.add(realfn)
+            if regex:
+                matched.add(realfn)
 
-        unmatched = set()
-        for _, _, regex, pri in self.bbfile_config_priorities:
-            if not regex in matched:
-                unmatched.add(regex)
-
-        # Don't show the warning if the BBFILE_PATTERN did match .bbappend files
-        def find_bbappend_match(regex):
+        if unmatched_regex:
+            # Account for bbappend files
             for b in self.bbappends:
                 (bbfile, append) = b
-                if regex.match(append):
-                    # If the bbappend is matched by already "matched set", return False
-                    for matched_regex in matched:
-                        if matched_regex.match(append):
-                            return False
-                    return True
-            return False
+                seen.add(append)
 
-        for unmatch in unmatched.copy():
-            if find_bbappend_match(unmatch):
-                unmatched.remove(unmatch)
+            # Account for skipped recipes
+            seen.update(fns)
+
+            seen.difference_update(matched)
+
+            def already_matched(fn):
+                for regex in matched_regex:
+                    if regex.match(fn):
+                        return True
+                return False
+
+            for unmatch in unmatched_regex.copy():
+                for fn in seen:
+                    if unmatch.match(fn):
+                        # If the bbappend or file was already matched by another regex, skip it
+                        # e.g. for a layer within a layer, the outer regex could match, the inner
+                        # regex may match nothing and we should warn about that
+                        if already_matched(fn):
+                            continue
+                        unmatched_regex.remove(unmatch)
+                        break
 
         for collection, pattern, regex, _ in self.bbfile_config_priorities:
-            if regex in unmatched:
+            if regex in unmatched_regex:
                 if d.getVar('BBFILE_PATTERN_IGNORE_EMPTY_%s' % collection) != '1':
                     collectlog.warning("No bb files in %s matched BBFILE_PATTERN_%s '%s'" % (self.mc if self.mc else 'default',
                                                                                              collection, pattern))
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index dbf8715..644ba92 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -355,7 +355,7 @@
               runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
 
             runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir)
-            fetch_cmd = "LANG=C %s fetch -f --prune --progress %s refs/*:refs/*" % (ud.basecmd, repourl)
+            fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, repourl)
             if ud.proto.lower() != 'file':
                 bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
             progresshandler = GitProgressHandler(d)
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index 785aa97..0714296 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -244,12 +244,14 @@
         bb.build.addtask(self.func, self.before, self.after, data)
 
 class DelTaskNode(AstNode):
-    def __init__(self, filename, lineno, func):
+    def __init__(self, filename, lineno, tasks):
         AstNode.__init__(self, filename, lineno)
-        self.func = func
+        self.tasks = tasks
 
     def eval(self, data):
-        bb.build.deltask(self.func, data)
+        tasks = data.expand(self.tasks).split()
+        for task in tasks:
+            bb.build.deltask(task, data)
 
 class BBHandlerNode(AstNode):
     def __init__(self, filename, lineno, fns):
@@ -305,7 +307,7 @@
     statements.append(AddTaskNode(filename, lineno, func, before, after))
 
 def handleDelTask(statements, filename, lineno, m):
-    func = m.group("func")
+    func = m.group(1)
     if func is None:
         return
 
diff --git a/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py b/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
index 6e216ef..215f940 100644
--- a/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
+++ b/poky/bitbake/lib/bb/parse/parse_py/BBHandler.py
@@ -26,7 +26,7 @@
 __inherit_regexp__       = re.compile(r"inherit\s+(.+)" )
 __export_func_regexp__   = re.compile(r"EXPORT_FUNCTIONS\s+(.+)" )
 __addtask_regexp__       = re.compile(r"addtask\s+(?P<func>\w+)\s*((before\s*(?P<before>((.*(?=after))|(.*))))|(after\s*(?P<after>((.*(?=before))|(.*)))))*")
-__deltask_regexp__       = re.compile(r"deltask\s+(?P<func>\w+)(?P<ignores>.*)")
+__deltask_regexp__       = re.compile(r"deltask\s+(.+)")
 __addhandler_regexp__    = re.compile(r"addhandler\s+(.+)" )
 __def_regexp__           = re.compile(r"def\s+(\w+).*:" )
 __python_func_regexp__   = re.compile(r"(\s+.*)|(^$)|(^#)" )
@@ -238,9 +238,6 @@
 
     m = __deltask_regexp__.match(s)
     if m:
-        # Check and warn "for deltask task1 task2"
-        if m.group('ignores'):
-            logger.warning('deltask ignored: "%s"' % m.group('ignores'))
         ast.handleDelTask(statements, fn, lineno, m)
         return
 
diff --git a/poky/bitbake/lib/bb/pysh/pyshyacc.py b/poky/bitbake/lib/bb/pysh/pyshyacc.py
index de565dc..924860a 100644
--- a/poky/bitbake/lib/bb/pysh/pyshyacc.py
+++ b/poky/bitbake/lib/bb/pysh/pyshyacc.py
@@ -570,6 +570,7 @@
 
 def p_separator_op(p):                 
     """separator_op : COMMA
+                    | COMMA COMMA
                     | AMP"""
     p[0] = p[1]
 
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index 83385ba..9ec79f5 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -48,7 +48,7 @@
 
         self.event_handle = None
         self.haveui = False
-        self.lastui = False
+        self.maxuiwait = 30
         self.xmlrpc = False
 
         self._idlefuns = {}
@@ -155,6 +155,7 @@
                 print("No timeout, exiting.")
                 self.quit = True
 
+        self.lastui = time.time()
         while not self.quit:
             if self.sock in ready:
                 while select.select([self.sock],[],[],0)[0]:
@@ -191,11 +192,18 @@
                 except (EOFError, OSError):
                     disconnect_client(self, fds)
 
-            if not self.timeout == -1.0 and not self.haveui and self.lastui and self.timeout and \
+            if not self.timeout == -1.0 and not self.haveui and self.timeout and \
                     (self.lastui + self.timeout) < time.time():
                 print("Server timeout, exiting.")
                 self.quit = True
 
+            # If we don't see a UI connection within maxuiwait, its unlikely we're going to see
+            # one. We have had issue with processes hanging indefinitely so timing out UI-less
+            # servers is useful.
+            if not self.haveui and not self.timeout and (self.lastui + self.maxuiwait) < time.time():
+                print("No UI connection within max timeout, exiting to avoid infinite loop.")
+                self.quit = True
+
             if self.command_channel in ready:
                 try:
                     command = self.command_channel.get()
@@ -220,10 +228,13 @@
 
         print("Exiting")
         # Remove the socket file so we don't get any more connections to avoid races
-        os.unlink(self.sockname)
+        try:
+            os.unlink(self.sockname)
+        except:
+            pass
         self.sock.close()
 
-        try: 
+        try:
             self.cooker.shutdown(True)
             self.cooker.notifier.stop()
             self.cooker.confignotifier.stop()
@@ -243,7 +254,7 @@
                 lock = bb.utils.lockfile(lockfile, shared=False, retry=False, block=True)
                 if lock:
                     # We hold the lock so we can remove the file (hide stale pid data)
-                    bb.utils.remove(lockfile)
+                    # via unlockfile.
                     bb.utils.unlockfile(lock)
                     return
 
@@ -331,7 +342,7 @@
     def runCommand(self, command):
         self.connection.send(command)
         if not self.recv.poll(30):
-            logger.note("No reply from server in 30s")
+            logger.info("No reply from server in 30s")
             if not self.recv.poll(30):
                 raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server (60s)")
         return self.recv.get()
diff --git a/poky/bitbake/lib/bb/tests/cooker.py b/poky/bitbake/lib/bb/tests/cooker.py
index 74c903f..c82d4b7 100644
--- a/poky/bitbake/lib/bb/tests/cooker.py
+++ b/poky/bitbake/lib/bb/tests/cooker.py
@@ -60,7 +60,7 @@
         log_handler = LogHandler()
         logger.addHandler(log_handler)
         collection = bb.cooker.CookerCollectFiles(bbfile_config_priorities)
-        collection.collection_priorities(pkgfns, self.d)
+        collection.collection_priorities(pkgfns, pkgfns, self.d)
         logger.removeHandler(log_handler)
 
         # Should be empty (no generated messages)
diff --git a/poky/bitbake/lib/bb/tests/parse.py b/poky/bitbake/lib/bb/tests/parse.py
index 9afd1b2..9e21e18 100644
--- a/poky/bitbake/lib/bb/tests/parse.py
+++ b/poky/bitbake/lib/bb/tests/parse.py
@@ -178,7 +178,10 @@
 addtask do_patch after do_foo after do_unpack before do_configure before do_compile
 addtask do_fetch do_patch
 
-deltask do_fetch do_patch
+MYVAR = "do_patch"
+EMPTYVAR = ""
+deltask do_fetch ${MYVAR} ${EMPTYVAR}
+deltask ${EMPTYVAR}
 """
     def test_parse_addtask_deltask(self):
         import sys
@@ -189,6 +192,5 @@
         self.assertTrue("addtask contained multiple 'before' keywords" in stdout)
         self.assertTrue("addtask contained multiple 'after' keywords" in stdout)
         self.assertTrue('addtask ignored: " do_patch"' in stdout)
-        self.assertTrue('deltask ignored: " do_patch"' in stdout)
         #self.assertTrue('dependent task do_foo for do_patch does not exist' in stdout)
 
diff --git a/poky/documentation/dev-manual/dev-manual-common-tasks.xml b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
index d29fe62..1f24c73 100644
--- a/poky/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/poky/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -3190,7 +3190,7 @@
                         building an image.
                         </para></listitem>
                     <listitem><para>
-                        <filename>virtual/mesa</filename>:
+                        <filename>virtual/libgbm</filename>:
                         Provides <filename>gbm.pc</filename>.
                         </para></listitem>
                     <listitem><para>
diff --git a/poky/documentation/ref-manual/ref-system-requirements.xml b/poky/documentation/ref-manual/ref-system-requirements.xml
index 43e217c..ac8b003 100644
--- a/poky/documentation/ref-manual/ref-system-requirements.xml
+++ b/poky/documentation/ref-manual/ref-system-requirements.xml
@@ -94,11 +94,12 @@
             <itemizedlist>
                 <listitem><para>Ubuntu 16.04 (LTS)</para></listitem>
                 <listitem><para>Ubuntu 18.04 (LTS)</para></listitem>
-                <listitem><para>Ubuntu 19.04</para></listitem>
-                <listitem><para>Fedora 28</para></listitem>
-                <listitem><para>Fedora 29</para></listitem>
+                <listitem><para>Ubuntu 20.04</para></listitem>
                 <listitem><para>Fedora 30</para></listitem>
+                <listitem><para>Fedora 31</para></listitem>
+                <listitem><para>Fedora 32</para></listitem>
                 <listitem><para>CentOS 7.x</para></listitem>
+                <listitem><para>CentOS 8.x</para></listitem>
                 <listitem><para>Debian GNU/Linux 8.x (Jessie)</para></listitem>
                 <listitem><para>Debian GNU/Linux 9.x (Stretch)</para></listitem>
                 <listitem><para>Debian GNU/Linux 10.x (Buster)</para></listitem>
diff --git a/poky/meta/classes/autotools.bbclass b/poky/meta/classes/autotools.bbclass
index 6c2a33a..1f3c771 100644
--- a/poky/meta/classes/autotools.bbclass
+++ b/poky/meta/classes/autotools.bbclass
@@ -5,7 +5,7 @@
     pn = d.getVar('PN')
     deps = ''
 
-    if pn in ['autoconf-native', 'automake-native', 'help2man-native']:
+    if pn in ['autoconf-native', 'automake-native']:
         return deps
     deps += 'autoconf-native automake-native '
 
diff --git a/poky/meta/classes/cmake.bbclass b/poky/meta/classes/cmake.bbclass
index 94ed806..8243f7c 100644
--- a/poky/meta/classes/cmake.bbclass
+++ b/poky/meta/classes/cmake.bbclass
@@ -70,15 +70,22 @@
 OECMAKE_TARGET_COMPILE ?= "all"
 OECMAKE_TARGET_INSTALL ?= "install"
 
+def map_host_os_to_system_name(host_os):
+    if host_os.startswith('mingw'):
+        return 'Windows'
+    if host_os.startswith('linux'):
+        return 'Linux'
+    return host_os
+
 # CMake expects target architectures in the format of uname(2),
 # which do not always match TARGET_ARCH, so all the necessary
 # conversions should happen here.
-def map_target_arch_to_uname_arch(target_arch):
-    if target_arch == "powerpc":
+def map_host_arch_to_uname_arch(host_arch):
+    if host_arch == "powerpc":
         return "ppc"
-    if target_arch == "powerpc64":
+    if host_arch == "powerpc64":
         return "ppc64"
-    return target_arch
+    return host_arch
 
 cmake_do_generate_toolchain_file() {
 	if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
@@ -88,8 +95,8 @@
 # CMake system name must be something like "Linux".
 # This is important for cross-compiling.
 $cmake_crosscompiling
-set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` )
-set( CMAKE_SYSTEM_PROCESSOR ${@map_target_arch_to_uname_arch(d.getVar('TARGET_ARCH'))} )
+set( CMAKE_SYSTEM_NAME ${@map_host_os_to_system_name(d.getVar('HOST_OS'))} )
+set( CMAKE_SYSTEM_PROCESSOR ${@map_host_arch_to_uname_arch(d.getVar('HOST_ARCH'))} )
 set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} )
 set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} )
 set( CMAKE_C_COMPILER_LAUNCHER ${OECMAKE_C_COMPILER_LAUNCHER} )
diff --git a/poky/meta/classes/cml1.bbclass b/poky/meta/classes/cml1.bbclass
index c7f6723..8ab2405 100644
--- a/poky/meta/classes/cml1.bbclass
+++ b/poky/meta/classes/cml1.bbclass
@@ -1,3 +1,13 @@
+# returns all the elements from the src uri that are .cfg files
+def find_cfgs(d):
+    sources=src_patches(d, True)
+    sources_list=[]
+    for s in sources:
+        if s.endswith('.cfg'):
+            sources_list.append(s)
+
+    return sources_list
+
 cml1_do_configure() {
 	set -e
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
diff --git a/poky/meta/classes/cve-check.bbclass b/poky/meta/classes/cve-check.bbclass
index 514897e..0889e75 100644
--- a/poky/meta/classes/cve-check.bbclass
+++ b/poky/meta/classes/cve-check.bbclass
@@ -30,6 +30,9 @@
 
 CVE_CHECK_LOG ?= "${T}/cve.log"
 CVE_CHECK_TMP_FILE ?= "${TMPDIR}/cve_check"
+CVE_CHECK_SUMMARY_DIR ?= "${LOG_DIR}/cve"
+CVE_CHECK_SUMMARY_FILE_NAME ?= "cve-summary"
+CVE_CHECK_SUMMARY_FILE ?= "${CVE_CHECK_SUMMARY_DIR}/${CVE_CHECK_SUMMARY_FILE_NAME}"
 
 CVE_CHECK_DIR ??= "${DEPLOY_DIR}/cve"
 CVE_CHECK_MANIFEST ?= "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.cve"
@@ -46,6 +49,32 @@
 # 
 CVE_CHECK_WHITELIST ?= ""
 
+python cve_save_summary_handler () {
+    import shutil
+    import datetime
+
+    cve_tmp_file = d.getVar("CVE_CHECK_TMP_FILE")
+
+    cve_summary_name = d.getVar("CVE_CHECK_SUMMARY_FILE_NAME")
+    cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR")
+    bb.utils.mkdirhier(cvelogpath)
+
+    timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
+    cve_summary_file = os.path.join(cvelogpath, "%s-%s.txt" % (cve_summary_name, timestamp))
+
+    shutil.copyfile(cve_tmp_file, cve_summary_file)
+
+    if cve_summary_file and os.path.exists(cve_summary_file):
+        cvefile_link = os.path.join(cvelogpath, cve_summary_name)
+
+        if os.path.exists(os.path.realpath(cvefile_link)):
+            os.remove(cvefile_link)
+        os.symlink(os.path.basename(cve_summary_file), cvefile_link)
+}
+
+addhandler cve_save_summary_handler
+cve_save_summary_handler[eventmask] = "bb.event.BuildCompleted"
+
 python do_cve_check () {
     """
     Check recipe for patched and unpatched CVEs
@@ -331,5 +360,8 @@
             f.write(write_string)
 
     if d.getVar("CVE_CHECK_CREATE_MANIFEST") == "1":
+        cvelogpath = d.getVar("CVE_CHECK_SUMMARY_DIR")
+        bb.utils.mkdirhier(cvelogpath)
+
         with open(d.getVar("CVE_CHECK_TMP_FILE"), "a") as f:
             f.write("%s" % write_string)
diff --git a/poky/meta/classes/gtk-immodules-cache.bbclass b/poky/meta/classes/gtk-immodules-cache.bbclass
index 9bb0af8..8e783fb 100644
--- a/poky/meta/classes/gtk-immodules-cache.bbclass
+++ b/poky/meta/classes/gtk-immodules-cache.bbclass
@@ -22,6 +22,7 @@
         gtk-query-immodules-2.0 > ${libdir}/gtk-2.0/2.10.0/immodules.cache
     fi
     if [ ! -z `which gtk-query-immodules-3.0` ]; then
+        mkdir -p ${libdir}/gtk-3.0/3.0.0
         gtk-query-immodules-3.0 > ${libdir}/gtk-3.0/3.0.0/immodules.cache
     fi
 fi
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index 694b58f..3b5600e 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -548,14 +548,14 @@
     if rootfs_maxsize:
         rootfs_maxsize_int = int(rootfs_maxsize)
         if base_size > rootfs_maxsize_int:
-            bb.fatal("The rootfs size %d(K) overrides IMAGE_ROOTFS_MAXSIZE: %d(K)" % \
+            bb.fatal("The rootfs size %d(K) exceeds IMAGE_ROOTFS_MAXSIZE: %d(K)" % \
                 (base_size, rootfs_maxsize_int))
 
     # Check the initramfs size against INITRAMFS_MAXSIZE (if set)
     if image_fstypes == initramfs_fstypes != ''  and initramfs_maxsize:
         initramfs_maxsize_int = int(initramfs_maxsize)
         if base_size > initramfs_maxsize_int:
-            bb.error("The initramfs size %d(K) overrides INITRAMFS_MAXSIZE: %d(K)" % \
+            bb.error("The initramfs size %d(K) exceeds INITRAMFS_MAXSIZE: %d(K)" % \
                 (base_size, initramfs_maxsize_int))
             bb.error("You can set INITRAMFS_MAXSIZE a larger value. Usually, it should")
             bb.fatal("be less than 1/2 of ram size, or you may fail to boot it.\n")
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index 649aea1..ee19ef6 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -364,14 +364,14 @@
             target_os == "linux-gnu_ilp32" or re.match(r'mips64.*32', d.getVar('DEFAULTTUNE')))
     is_bpf = (oe.qa.elf_machine_to_string(elf.machine()) == "BPF")
     if not ((machine == elf.machine()) or is_32 or is_bpf):
-        package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) on %s" % \
-                 (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path,d)))
+        package_qa_add_message(messages, "arch", "Architecture did not match (%s, expected %s) in %s" % \
+                 (oe.qa.elf_machine_to_string(elf.machine()), oe.qa.elf_machine_to_string(machine), package_qa_clean_path(path, d, name)))
     elif not ((bits == elf.abiSize()) or is_32 or is_bpf):
-        package_qa_add_message(messages, "arch", "Bit size did not match (%d to %d) %s on %s" % \
-                 (bits, elf.abiSize(), bpn, package_qa_clean_path(path,d)))
+        package_qa_add_message(messages, "arch", "Bit size did not match (%d, expected %d) in %s" % \
+                 (elf.abiSize(), bits, package_qa_clean_path(path, d, name)))
     elif not ((littleendian == elf.isLittleEndian()) or is_bpf):
-        package_qa_add_message(messages, "arch", "Endiannes did not match (%d to %d) on %s" % \
-                 (littleendian, elf.isLittleEndian(), package_qa_clean_path(path,d)))
+        package_qa_add_message(messages, "arch", "Endiannes did not match (%d, expected %d) in %s" % \
+                 (elf.isLittleEndian(), littleendian, package_qa_clean_path(path,d, name)))
 
 QAPATHTEST[desktop] = "package_qa_check_desktop"
 def package_qa_check_desktop(path, name, d, elf, messages):
@@ -459,10 +459,6 @@
     if os.path.islink(path):
         return
 
-    # Ignore ipk and deb's CONTROL dir
-    if path.find(name + "/CONTROL/") != -1 or path.find(name + "/DEBIAN/") != -1:
-        return
-
     tmpdir = bytes(d.getVar('TMPDIR'), encoding="utf-8")
     with open(path, 'rb') as f:
         file_content = f.read()
@@ -1034,7 +1030,14 @@
     pkgfiles = {}
     for pkg in packages:
         pkgfiles[pkg] = []
-        for walkroot, dirs, files in os.walk(os.path.join(pkgdest, pkg)):
+        pkgdir = os.path.join(pkgdest, pkg)
+        for walkroot, dirs, files in os.walk(pkgdir):
+            # Don't walk into top-level CONTROL or DEBIAN directories as these
+            # are temporary directories created by do_package.
+            if walkroot == pkgdir:
+                for control in ("CONTROL", "DEBIAN"):
+                    if control in dirs:
+                        dirs.remove(control)
             for file in files:
                 pkgfiles[pkg].append(os.path.join(walkroot, file))
 
diff --git a/poky/meta/classes/kernel-yocto.bbclass b/poky/meta/classes/kernel-yocto.bbclass
index 54a1a16..3311f6e 100644
--- a/poky/meta/classes/kernel-yocto.bbclass
+++ b/poky/meta/classes/kernel-yocto.bbclass
@@ -213,7 +213,7 @@
 	meta_dir=$(kgit --meta)
 
 	# run1: pull all the configuration fragments, no matter where they come from
-	elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`"
+	elements="`echo -n ${bsp_definition} $sccs_defconfig ${sccs} ${patches} ${KERNEL_FEATURES}`"
 	if [ -n "${elements}" ]; then
 		echo "${bsp_definition}" > ${S}/${meta_dir}/bsp_definition
 		scc --force -o ${S}/${meta_dir}:cfg,merge,meta ${includes} $sccs_defconfig $bsp_definition $sccs $patches ${KERNEL_FEATURES}
diff --git a/poky/meta/classes/nativesdk.bbclass b/poky/meta/classes/nativesdk.bbclass
index 7b75710..7f2692c 100644
--- a/poky/meta/classes/nativesdk.bbclass
+++ b/poky/meta/classes/nativesdk.bbclass
@@ -9,6 +9,7 @@
 LIBCOVERRIDE = ":${NATIVESDKLIBC}"
 CLASSOVERRIDE = "class-nativesdk"
 MACHINEOVERRIDES = ""
+MACHINE_FEATURES = ""
 
 MULTILIBS = ""
 
@@ -57,7 +58,7 @@
 
 CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
 CFLAGS = "${BUILDSDK_CFLAGS}"
-CXXFLAGS = "${BUILDSDK_CFLAGS}"
+CXXFLAGS = "${BUILDSDK_CXXFLAGS}"
 LDFLAGS = "${BUILDSDK_LDFLAGS}"
 
 # Change to place files in SDKPATH
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index 0af5f66..f8dc1bb 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -1039,7 +1039,7 @@
 
     dvar = d.getVar('PKGD')
     pn = d.getVar('PN')
-    targetos = d.getVar('TARGET_OS')
+    hostos = d.getVar('HOST_OS')
 
     oldcwd = os.getcwd()
     os.chdir(dvar)
@@ -1194,7 +1194,7 @@
     if (d.getVar('INHIBIT_PACKAGE_DEBUG_SPLIT') != '1'):
         results = oe.utils.multiprocess_launch(splitdebuginfo, list(elffiles), d, extraargs=(dvar, debugdir, debuglibdir, debugappend, debugsrcdir, d))
 
-        if debugsrcdir and not targetos.startswith("mingw"):
+        if debugsrcdir and not hostos.startswith("mingw"):
             if (d.getVar('PACKAGE_DEBUG_STATIC_SPLIT') == '1'):
                 results = oe.utils.multiprocess_launch(splitstaticdebuginfo, staticlibs, d, extraargs=(dvar, debugstaticdir, debugstaticlibdir, debugstaticappend, debugsrcdir, d))
             else:
@@ -1761,7 +1761,7 @@
     else:
         shlib_pkgs = packages.split()
 
-    targetos = d.getVar('TARGET_OS')
+    hostos = d.getVar('HOST_OS')
 
     workdir = d.getVar('WORKDIR')
 
@@ -1912,9 +1912,9 @@
                 soname = None
                 if cpath.islink(file):
                     continue
-                if targetos == "darwin" or targetos == "darwin8":
+                if hostos == "darwin" or hostos == "darwin8":
                     darwin_so(file, needed, sonames, renames, pkgver)
-                elif targetos.startswith("mingw"):
+                elif hostos.startswith("mingw"):
                     mingw_dll(file, needed, sonames, renames, pkgver)
                 elif os.access(file, os.X_OK) or lib_re.match(file):
                     linuxlist.append(file)
diff --git a/poky/meta/classes/ptest.bbclass b/poky/meta/classes/ptest.bbclass
index fa4c36e..47611ed 100644
--- a/poky/meta/classes/ptest.bbclass
+++ b/poky/meta/classes/ptest.bbclass
@@ -6,7 +6,7 @@
 PTEST_BUILD_HOST_FILES ?= "Makefile"
 PTEST_BUILD_HOST_PATTERN ?= ""
 
-FILES_${PN}-ptest = "${PTEST_PATH}"
+FILES_${PN}-ptest += "${PTEST_PATH}"
 SECTION_${PN}-ptest = "devel"
 ALLOW_EMPTY_${PN}-ptest = "1"
 PTEST_ENABLED = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '1', '0', d)}"
diff --git a/poky/meta/classes/reproducible_build.bbclass b/poky/meta/classes/reproducible_build.bbclass
index 8da40f6..2f3bd90 100644
--- a/poky/meta/classes/reproducible_build.bbclass
+++ b/poky/meta/classes/reproducible_build.bbclass
@@ -70,100 +70,16 @@
 addtask do_deploy_source_date_epoch_setscene
 addtask do_deploy_source_date_epoch before do_configure after do_patch
 
-def get_source_date_epoch_from_known_files(d, sourcedir):
-    source_date_epoch = None
-    newest_file = None
-    known_files = set(["NEWS", "ChangeLog", "Changelog", "CHANGES"])
-    for file in known_files:
-        filepath = os.path.join(sourcedir, file)
-        if os.path.isfile(filepath):
-            mtime = int(os.lstat(filepath).st_mtime)
-            # There may be more than one "known_file" present, if so, use the youngest one
-            if not source_date_epoch or mtime > source_date_epoch:
-                source_date_epoch = mtime
-                newest_file = filepath
-    if newest_file:
-        bb.debug(1, "SOURCE_DATE_EPOCH taken from: %s" % newest_file)
-    return source_date_epoch
-
-def find_git_folder(d, sourcedir):
-    # First guess: WORKDIR/git
-    # This is the default git fetcher unpack path
-    workdir = d.getVar('WORKDIR')
-    gitpath = os.path.join(workdir, "git/.git")
-    if os.path.isdir(gitpath):
-        return gitpath
-
-    # Second guess: ${S}
-    gitpath = os.path.join(sourcedir, ".git")
-    if os.path.isdir(gitpath):
-        return gitpath
-
-    # Perhaps there was a subpath or destsuffix specified.
-    # Go looking in the WORKDIR
-    exclude = set(["build", "image", "license-destdir", "patches", "pseudo",
-                   "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"])
-    for root, dirs, files in os.walk(workdir, topdown=True):
-        dirs[:] = [d for d in dirs if d not in exclude]
-        if '.git' in dirs:
-            return root
-
-    bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir)
-    return None
-
-def get_source_date_epoch_from_git(d, sourcedir):
-    source_date_epoch = None
-    if "git://" in d.getVar('SRC_URI'):
-        gitpath = find_git_folder(d, sourcedir)
-        if gitpath:
-            import subprocess
-            source_date_epoch = int(subprocess.check_output(['git','log','-1','--pretty=%ct'], cwd=gitpath))
-            bb.debug(1, "git repository: %s" % gitpath)
-    return source_date_epoch
-
-def get_source_date_epoch_from_youngest_file(d, sourcedir):
-    if sourcedir == d.getVar('WORKDIR'):
-       # These sources are almost certainly not from a tarball
-       return None
-
-    # Do it the hard way: check all files and find the youngest one...
-    source_date_epoch = None
-    newest_file = None
-    for root, dirs, files in os.walk(sourcedir, topdown=True):
-        files = [f for f in files if not f[0] == '.']
-
-        for fname in files:
-            filename = os.path.join(root, fname)
-            try:
-                mtime = int(os.lstat(filename).st_mtime)
-            except ValueError:
-                mtime = 0
-            if not source_date_epoch or mtime > source_date_epoch:
-                source_date_epoch = mtime
-                newest_file = filename
-
-    if newest_file:
-        bb.debug(1, "Newest file found: %s" % newest_file)
-    return source_date_epoch
-
-def fixed_source_date_epoch():
-    bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH")
-    return 0
-
 python create_source_date_epoch_stamp() {
+    import oe.reproducible
+
     epochfile = d.getVar('SDE_FILE')
     # If it exists we need to regenerate as the sources may have changed
     if os.path.isfile(epochfile):
         bb.debug(1, "Deleting existing SOURCE_DATE_EPOCH from: %s" % epochfile)
         os.remove(epochfile)
 
-    sourcedir = d.getVar('S')
-    source_date_epoch = (
-        get_source_date_epoch_from_git(d, sourcedir) or
-        get_source_date_epoch_from_known_files(d, sourcedir) or
-        get_source_date_epoch_from_youngest_file(d, sourcedir) or
-        fixed_source_date_epoch()       # Last resort
-    )
+    source_date_epoch = oe.reproducible.get_source_date_epoch(d, d.getVar('S'))
 
     bb.debug(1, "SOURCE_DATE_EPOCH: %d" % source_date_epoch)
     bb.utils.mkdirhier(d.getVar('SDE_DIR'))
diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py
index 29473a9..36427ee 100644
--- a/poky/meta/lib/oe/recipeutils.py
+++ b/poky/meta/lib/oe/recipeutils.py
@@ -24,7 +24,7 @@
 from bb.utils import vercmp_string
 
 # Help us to find places to insert values
-recipe_progression = ['SUMMARY', 'DESCRIPTION', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()']
+recipe_progression = ['SUMMARY', 'DESCRIPTION', 'AUTHOR', 'HOMEPAGE', 'BUGTRACKER', 'SECTION', 'LICENSE', 'LICENSE_FLAGS', 'LIC_FILES_CHKSUM', 'PROVIDES', 'DEPENDS', 'PR', 'PV', 'SRCREV', 'SRCPV', 'SRC_URI', 'S', 'do_fetch()', 'do_unpack()', 'do_patch()', 'EXTRA_OECONF', 'EXTRA_OECMAKE', 'EXTRA_OESCONS', 'do_configure()', 'EXTRA_OEMAKE', 'do_compile()', 'do_install()', 'do_populate_sysroot()', 'INITSCRIPT', 'USERADD', 'GROUPADD', 'PACKAGES', 'FILES', 'RDEPENDS', 'RRECOMMENDS', 'RSUGGESTS', 'RPROVIDES', 'RREPLACES', 'RCONFLICTS', 'ALLOW_EMPTY', 'populate_packages()', 'do_package()', 'do_deploy()', 'BBCLASSEXTEND']
 # Variables that sometimes are a bit long but shouldn't be wrapped
 nowrap_vars = ['SUMMARY', 'HOMEPAGE', 'BUGTRACKER', r'SRC_URI\[(.+\.)?md5sum\]', r'SRC_URI\[(.+\.)?sha256sum\]']
 list_vars = ['SRC_URI', 'LIC_FILES_CHKSUM']
diff --git a/poky/meta/lib/oe/reproducible.py b/poky/meta/lib/oe/reproducible.py
new file mode 100644
index 0000000..f4f58dd
--- /dev/null
+++ b/poky/meta/lib/oe/reproducible.py
@@ -0,0 +1,104 @@
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+import os
+import subprocess
+import bb
+
+def get_source_date_epoch_from_known_files(d, sourcedir):
+    source_date_epoch = None
+    newest_file = None
+    known_files = set(["NEWS", "ChangeLog", "Changelog", "CHANGES"])
+    for file in known_files:
+        filepath = os.path.join(sourcedir, file)
+        if os.path.isfile(filepath):
+            mtime = int(os.lstat(filepath).st_mtime)
+            # There may be more than one "known_file" present, if so, use the youngest one
+            if not source_date_epoch or mtime > source_date_epoch:
+                source_date_epoch = mtime
+                newest_file = filepath
+    if newest_file:
+        bb.debug(1, "SOURCE_DATE_EPOCH taken from: %s" % newest_file)
+    return source_date_epoch
+
+def find_git_folder(d, sourcedir):
+    # First guess: WORKDIR/git
+    # This is the default git fetcher unpack path
+    workdir = d.getVar('WORKDIR')
+    gitpath = os.path.join(workdir, "git/.git")
+    if os.path.isdir(gitpath):
+        return gitpath
+
+    # Second guess: ${S}
+    gitpath = os.path.join(sourcedir, ".git")
+    if os.path.isdir(gitpath):
+        return gitpath
+
+    # Perhaps there was a subpath or destsuffix specified.
+    # Go looking in the WORKDIR
+    exclude = set(["build", "image", "license-destdir", "patches", "pseudo",
+                   "recipe-sysroot", "recipe-sysroot-native", "sysroot-destdir", "temp"])
+    for root, dirs, files in os.walk(workdir, topdown=True):
+        dirs[:] = [d for d in dirs if d not in exclude]
+        if '.git' in dirs:
+            return root
+
+    bb.warn("Failed to find a git repository in WORKDIR: %s" % workdir)
+    return None
+
+def get_source_date_epoch_from_git(d, sourcedir):
+    if not "git://" in d.getVar('SRC_URI'):
+        return None
+
+    gitpath = find_git_folder(d, sourcedir)
+    if not gitpath:
+        return None
+
+    # Check that the repository has a valid HEAD; it may not if subdir is used
+    # in SRC_URI
+    p = subprocess.run(['git', 'rev-parse', 'HEAD'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, cwd=gitpath)
+    if p.returncode != 0:
+        bb.debug(1, "%s does not have a valid HEAD: %s" % (gitpath, p.stdout.decode('utf-8')))
+        return None
+
+    bb.debug(1, "git repository: %s" % gitpath)
+    p = subprocess.run(['git','log','-1','--pretty=%ct'], check=True, stdout=subprocess.PIPE, cwd=gitpath)
+    return int(p.stdout.decode('utf-8'))
+
+def get_source_date_epoch_from_youngest_file(d, sourcedir):
+    if sourcedir == d.getVar('WORKDIR'):
+       # These sources are almost certainly not from a tarball
+       return None
+
+    # Do it the hard way: check all files and find the youngest one...
+    source_date_epoch = None
+    newest_file = None
+    for root, dirs, files in os.walk(sourcedir, topdown=True):
+        files = [f for f in files if not f[0] == '.']
+
+        for fname in files:
+            filename = os.path.join(root, fname)
+            try:
+                mtime = int(os.lstat(filename).st_mtime)
+            except ValueError:
+                mtime = 0
+            if not source_date_epoch or mtime > source_date_epoch:
+                source_date_epoch = mtime
+                newest_file = filename
+
+    if newest_file:
+        bb.debug(1, "Newest file found: %s" % newest_file)
+    return source_date_epoch
+
+def fixed_source_date_epoch():
+    bb.debug(1, "No tarball or git repo found to determine SOURCE_DATE_EPOCH")
+    return 0
+
+def get_source_date_epoch(d, sourcedir):
+    return (
+        get_source_date_epoch_from_git(d, sourcedir) or
+        get_source_date_epoch_from_known_files(d, sourcedir) or
+        get_source_date_epoch_from_youngest_file(d, sourcedir) or
+        fixed_source_date_epoch()       # Last resort
+    )
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 9adb511..c46e8ba 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -19,10 +19,13 @@
         # Test that a git repository which changes is correctly handled by SRCREV = ${AUTOREV}
         # when PV does not contain SRCPV
 
-        tempdir = tempfile.mkdtemp(prefix='oeqa')
+        tempdir = tempfile.mkdtemp(prefix='sstate_autorev')
+        tempdldir = tempfile.mkdtemp(prefix='sstate_autorev_dldir')
         self.track_for_cleanup(tempdir)
+        self.track_for_cleanup(tempdldir)
         create_temp_layer(tempdir, 'selftestrecipetool')
         self.add_command_to_tearDown('bitbake-layers remove-layer %s' % tempdir)
+        self.append_config("DL_DIR = \"%s\"" % tempdldir)
         runCmd('bitbake-layers add-layer %s' % tempdir)
 
         # Use dbus-wait as a local git repo we can add a commit between two builds in
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index 992fff9..519aa9a 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -32,7 +32,7 @@
 class QemuRunner:
 
     def __init__(self, machine, rootfs, display, tmpdir, deploy_dir_image, logfile, boottime, dump_dir, dump_host_cmds,
-                 use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False):
+                 use_kvm, logger, use_slirp=False, serial_ports=2, boot_patterns = defaultdict(str), use_ovmf=False, workdir=None):
 
         # Popen object for runqemu
         self.runqemu = None
@@ -63,7 +63,9 @@
         self.boot_patterns = boot_patterns
 
         self.runqemutime = 120
-        self.qemu_pidfile = 'pidfile_'+str(os.getpid())
+        if not workdir:
+            workdir = os.getcwd()
+        self.qemu_pidfile = workdir + '/pidfile_' + str(os.getpid())
         self.host_dumper = HostDumper(dump_host_cmds, dump_dir)
         self.monitorpipe = None
 
@@ -252,8 +254,17 @@
         if not self.is_alive():
             self.logger.error("Qemu pid didn't appear in %s seconds (%s)" %
                               (self.runqemutime, time.strftime("%D %H:%M:%S")))
+
+            qemu_pid = None
+            if os.path.isfile(self.qemu_pidfile):
+                with open(self.qemu_pidfile, 'r') as f:
+                    qemu_pid = f.read().strip()
+
+            self.logger.error("Status information, poll status: %s, pidfile exists: %s, pidfile contents %s, proc pid exists %s"
+                % (self.runqemu.poll(), os.path.isfile(self.qemu_pidfile), str(qemu_pid), os.path.exists("/proc/" + str(qemu_pid))))
+
             # Dump all processes to help us to figure out what is going on...
-            ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command '], stdout=subprocess.PIPE).communicate()[0]
+            ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command '], stdout=subprocess.PIPE).communicate()[0]
             processes = ps.decode("utf-8")
             self.logger.debug("Running processes:\n%s" % processes)
             self._dump_host()
diff --git a/poky/meta/lib/oeqa/utils/qemutinyrunner.py b/poky/meta/lib/oeqa/utils/qemutinyrunner.py
index 364005b..5c92941 100644
--- a/poky/meta/lib/oeqa/utils/qemutinyrunner.py
+++ b/poky/meta/lib/oeqa/utils/qemutinyrunner.py
@@ -138,7 +138,7 @@
         #
         # Walk the process tree from the process specified looking for a qemu-system. Return its [pid'cmd]
         #
-        ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,command'], stdout=subprocess.PIPE).communicate()[0]
+        ps = subprocess.Popen(['ps', 'axww', '-o', 'pid,ppid,pri,ni,command'], stdout=subprocess.PIPE).communicate()[0]
         processes = ps.decode("utf-8").split('\n')
         nfields = len(processes[0].split()) - 1
         pids = {}
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
index f479053..9199bbf 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,7 +12,7 @@
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "1079ec0a77c3fda510f07860b2549c47f3a46c21"
+SRCREV = "2f5fbb5b39f7b67044dda5c35e4a4b31685a3109"
 
 SRC_URI = "git://git.denx.de/u-boot.git \
           "
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.04.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot-tools_2020.07.bb
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot.inc b/poky/meta/recipes-bsp/u-boot/u-boot.inc
index c91da02..251178d 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot.inc
@@ -70,16 +70,6 @@
 UBOOT_EXTLINUX_CONF_NAME ?= "extlinux.conf"
 UBOOT_EXTLINUX_SYMLINK ?= "${UBOOT_EXTLINUX_CONF_NAME}-${MACHINE}-${PR}"
 
-# returns all the elements from the src uri that are .cfg files
-def find_cfgs(d):
-    sources=src_patches(d, True)
-    sources_list=[]
-    for s in sources:
-        if s.endswith('.cfg'):
-            sources_list.append(s)
-
-    return sources_list
-
 do_configure () {
     if [ -n "${UBOOT_CONFIG}" ]; then
         unset i j
@@ -89,7 +79,7 @@
                 j=$(expr $j + 1);
                 if [ $j -eq $i ]; then
                     oe_runmake -C ${S} O=${B}/${config} ${config}
-                    if [ test -n "${@' '.join(find_cfgs(d))}" ]; then
+                    if [ -n "${@' '.join(find_cfgs(d))}" ]; then
                         merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))}
                         oe_runmake -C ${S} O=${B}/${config} oldconfig
                     fi
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2020.04.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2020.07.bb
diff --git a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
index 35d0c3e..c8a3f87 100644
--- a/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/poky/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -108,7 +108,7 @@
 LICENSE_avahi-daemon = "LGPLv2.1+"
 LICENSE_libavahi-common = "LGPLv2.1+"
 LICENSE_libavahi-core = "LGPLv2.1+"
-LICENSE_avahi-client = "LGPLv2.1+"
+LICENSE_libavahi-client = "LGPLv2.1+"
 LICENSE_avahi-dnsconfd = "LGPLv2.1+"
 LICENSE_libavahi-glib = "LGPLv2.1+"
 LICENSE_avahi-autoipd = "LGPLv2.1+"
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.11.19.bb b/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb
similarity index 98%
rename from poky/meta/recipes-connectivity/bind/bind_9.11.19.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.11.21.bb
index 276173e..ee546a0 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.11.19.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.11.21.bb
@@ -20,7 +20,7 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "0dee554a4caa368948b32da9a0c97b516c19103bc13ff5b3762c5d8552f52329"
+SRC_URI[sha256sum] = "668158b005b3de4328fa0dbbbb3f524b66f28f024c67538aa9412a9e69c9dfbc"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # stay at 9.11 until 9.16, from 9.16 follow the ESV versions divisible by 4
diff --git a/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb b/poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb
similarity index 89%
rename from poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb
rename to poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb
index afc9b2f..8745463 100644
--- a/poky/meta/recipes-connectivity/libuv/libuv_1.38.0.bb
+++ b/poky/meta/recipes-connectivity/libuv/libuv_1.38.1.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
 
-SRCREV = "1ab9ea3790378f9f25c4e78e9e2b511c75f9c9ed"
+SRCREV = "e8b989ea1f7f9d4083511a2caec7791e9abd1871"
 SRC_URI = "git://github.com/libuv/libuv;branch=v1.x"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
index 188a889..b8ad23a 100644
--- a/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
+++ b/poky/meta/recipes-connectivity/nfs-utils/nfs-utils_2.5.1.bb
@@ -56,6 +56,7 @@
                 --disable-gss \
                 --disable-nfsdcltrack \
                 --with-statdpath=/var/lib/nfs/statd \
+                --with-rpcgen=${HOSTTOOLS_DIR}/rpcgen \
                "
 
 PACKAGECONFIG ??= "tcp-wrappers \
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
index 47ed6b7..8159558 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1g.bb
@@ -204,6 +204,8 @@
 RRECOMMENDS_libcrypto += "openssl-conf"
 RDEPENDS_${PN}-ptest += "openssl-bin perl perl-modules bash"
 
+RDEPENDS_${PN}-bin += "openssl-conf"
+
 BBCLASSEXTEND = "native nativesdk"
 
 CVE_PRODUCT = "openssl:openssl"
diff --git a/poky/meta/recipes-core/busybox/busybox.inc b/poky/meta/recipes-core/busybox/busybox.inc
index 6cfdcd7..45aaa2b 100644
--- a/poky/meta/recipes-core/busybox/busybox.inc
+++ b/poky/meta/recipes-core/busybox/busybox.inc
@@ -133,16 +133,6 @@
 	fi
 }
 
-# returns all the elements from the src uri that are .cfg files
-def find_cfgs(d):
-    sources=src_patches(d, True)
-    sources_list=[]
-    for s in sources:
-        if s.endswith('.cfg'):
-            sources_list.append(s)
-
-    return sources_list
-
 do_configure () {
 	set -x
 	do_prepare_config
diff --git a/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch b/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch
new file mode 100644
index 0000000..8d1f272
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/busybox/0001-hwclock-make-glibc-2.31-compatible.patch
@@ -0,0 +1,83 @@
+From 5b2fc5746c352eb2b27bfc9fb224580d9852d0fa Mon Sep 17 00:00:00 2001
+From: Sakib Sajal <sakib.sajal@windriver.com>
+Date: Fri, 17 Jul 2020 17:27:21 +0000
+Subject: [PATCH] hwclock: make glibc 2.31 compatible
+
+NEWS for glibc version 2.31
+===========================
+
+Deprecated and removed features, and other changes affecting compatibility:
+
+* The settimeofday function can still be used to set a system-wide
+  time zone when the operating system supports it.  This is because
+  the Linux kernel reused the API, on some architectures, to describe
+  a system-wide time-zone-like offset between the software clock
+  maintained by the kernel, and the "RTC" clock that keeps time when
+  the system is shut down.
+
+  However, to reduce the odds of this offset being set by accident,
+  settimeofday can no longer be used to set the time and the offset
+  simultaneously.  If both of its two arguments are non-null, the call
+  will fail (setting errno to EINVAL).
+
+  Callers attempting to set this offset should also be prepared for
+  the call to fail and set errno to ENOSYS; this already happens on
+  the Hurd and on some Linux architectures.  The Linux kernel
+  maintainers are discussing a more principled replacement for the
+  reused API.  After a replacement becomes available, we will change
+  settimeofday to fail with ENOSYS on all platforms when its 'tzp'
+  argument is not a null pointer.
+
+  settimeofday itself is obsolescent according to POSIX.  Programs
+  that set the system time should use clock_settime and/or the adjtime
+  family of functions instead.  We may cease to make settimeofday
+  available to newly linked binaries after there is a replacement for
+  Linux's time-zone-like offset API.
+
+hwclock had two calls to settimeofday, in functions to_sys_clock and
+set_system_clock_timezone, where both the arguments to settimeofday
+were valid (non-null).
+Therefore, split the call, once for timezone and once for timeval.
+
+Fixes #12756
+
+Upstream-Status: Pending
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ util-linux/hwclock.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c
+index dc97d8f..cf346e8 100644
+--- a/util-linux/hwclock.c
++++ b/util-linux/hwclock.c
+@@ -131,8 +131,10 @@ static void to_sys_clock(const char **pp_rtcname, int utc)
+ 
+ 	tv.tv_sec = read_rtc(pp_rtcname, NULL, utc);
+ 	tv.tv_usec = 0;
+-	if (settimeofday(&tv, &tz))
+-		bb_simple_perror_msg_and_die("settimeofday");
++	if (settimeofday(NULL, &tz))
++		bb_simple_perror_msg_and_die("settimeofday: timezone");
++	if (settimeofday(&tv, NULL))
++		bb_simple_perror_msg_and_die("settimeofday: timeval");
+ }
+ 
+ static void from_sys_clock(const char **pp_rtcname, int utc)
+@@ -283,8 +285,10 @@ static void set_system_clock_timezone(int utc)
+ 	gettimeofday(&tv, NULL);
+ 	if (!utc)
+ 		tv.tv_sec += tz.tz_minuteswest * 60;
+-	if (settimeofday(&tv, &tz))
+-		bb_simple_perror_msg_and_die("settimeofday");
++	if (settimeofday(NULL, &tz))
++		bb_simple_perror_msg_and_die("settimeofday: timezone");
++	if (settimeofday(&tv, NULL))
++		bb_simple_perror_msg_and_die("settimeofday: timeval");
+ }
+ 
+ //usage:#define hwclock_trivial_usage
+-- 
+2.24.1
+
diff --git a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb
index 0dfdfdb..aeea40f 100644
--- a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb
@@ -43,6 +43,7 @@
            file://0001-testsuite-use-www.example.org-for-wget-test-cases.patch \
            file://0001-du-l-works-fix-to-use-145-instead-of-144.patch \
            file://0001-sysctl-ignore-EIO-of-stable_secret-below-proc-sys-ne.patch \
+           file://0001-hwclock-make-glibc-2.31-compatible.patch \
 "
 SRC_URI_append_libc-musl = " file://musl.cfg "
 
diff --git a/poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb b/poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb
similarity index 100%
rename from poky/meta/recipes-core/dbus/dbus-test_1.12.18.bb
rename to poky/meta/recipes-core/dbus/dbus-test_1.12.20.bb
diff --git a/poky/meta/recipes-core/dbus/dbus.inc b/poky/meta/recipes-core/dbus/dbus.inc
index 3bdb7ea..dcbcc0a 100644
--- a/poky/meta/recipes-core/dbus/dbus.inc
+++ b/poky/meta/recipes-core/dbus/dbus.inc
@@ -10,8 +10,8 @@
            file://clear-guid_from_server-if-send_negotiate_unix_f.patch \
 "
 
-SRC_URI[md5sum] = "4ca570c281be35d0b30ab83436712242"
-SRC_URI[sha256sum] = "64cf4d70840230e5e9bc784d153880775ab3db19d656ead8a0cb9c0ab5a95306"
+SRC_URI[md5sum] = "dfe8a71f412e0b53be26ed4fbfdc91c4"
+SRC_URI[sha256sum] = "f77620140ecb4cdc67f37fb444f8a6bea70b5b6461f12f1cbe2cec60fa7de5fe"
 
 EXTRA_OECONF = "--disable-xml-docs \
                 --disable-doxygen-docs \
diff --git a/poky/meta/recipes-core/dbus/dbus_1.12.18.bb b/poky/meta/recipes-core/dbus/dbus_1.12.20.bb
similarity index 100%
rename from poky/meta/recipes-core/dbus/dbus_1.12.18.bb
rename to poky/meta/recipes-core/dbus/dbus_1.12.20.bb
diff --git a/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch b/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
new file mode 100644
index 0000000..c5c18ea
--- /dev/null
+++ b/poky/meta/recipes-core/expat/expat/0001-Add-output-of-tests-result.patch
@@ -0,0 +1,83 @@
+From aa84835a00bfd65e784d58411e76f60658e939dc Mon Sep 17 00:00:00 2001
+From: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
+Date: Tue, 18 Feb 2020 19:04:55 +0200
+Subject: [PATCH] Add output of tests result
+
+Added console output of testing results in form 'RESULT: TEST_NAME'.
+
+Changed verbose mode of test application set by '-v' ('--verbose')
+argument to CK_NORMAL.
+Added new supported argument '-vv' ('--extra-verbose') that changes
+verbose mode of test application to CK_VERBOSE. Results of each test
+are shown in output only if this mode is set.
+
+Upstream-Status: Denied
+
+This patch changes potentially deprecated feature that shoud be changed
+in upstream. [https://github.com/libexpat/libexpat/issues/382]
+
+Signed-off-by: Oleksandr Popovych <oleksandr.s.popovych@globallogic.com>
+---
+ tests/minicheck.c | 10 +++++++++-
+ tests/runtests.c  |  4 +++-
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/expat/tests/minicheck.c b/expat/tests/minicheck.c
+index a5a1efb..94fa412 100644
+--- a/tests/minicheck.c
++++ b/tests/minicheck.c
+@@ -164,6 +164,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
+       if (tc->setup != NULL) {
+         /* setup */
+         if (setjmp(env)) {
++          if (verbosity >= CK_VERBOSE)
++            printf("SKIP: %s\n", _check_current_function);
+           add_failure(runner, verbosity);
+           continue;
+         }
+@@ -171,6 +173,8 @@ srunner_run_all(SRunner *runner, int verbosity) {
+       }
+       /* test */
+       if (setjmp(env)) {
++        if (verbosity >= CK_VERBOSE)
++          printf("FAIL: %s\n", _check_current_function);
+         add_failure(runner, verbosity);
+         continue;
+       }
+@@ -178,12 +182,16 @@ srunner_run_all(SRunner *runner, int verbosity) {
+
+       /* teardown */
+       if (tc->teardown != NULL) {
+-        if (setjmp(env)) {
++        if (setjmp(env)) {
++          if (verbosity >= CK_VERBOSE)
++           printf("PASS: %s\n", _check_current_function);
+           add_failure(runner, verbosity);
+           continue;
+         }
+         tc->teardown();
+       }
++      if (verbosity >= CK_VERBOSE)
++        printf("PASS: %s\n", _check_current_function);
+     }
+     tc = tc->next_tcase;
+   }
+diff --git a/tests/runtests.c b/expat/tests/runtests.c
+index 7791fe0..75724e5 100644
+--- a/tests/runtests.c
++++ b/tests/runtests.c
+@@ -11619,9 +11619,11 @@ main(int argc, char *argv[]) {
+   for (i = 1; i < argc; ++i) {
+     char *opt = argv[i];
+     if (strcmp(opt, "-v") == 0 || strcmp(opt, "--verbose") == 0)
+-      verbosity = CK_VERBOSE;
++      verbosity = CK_NORMAL;
+     else if (strcmp(opt, "-q") == 0 || strcmp(opt, "--quiet") == 0)
+       verbosity = CK_SILENT;
++    else if (strcmp(opt, "-vv") == 0 || strcmp(opt, "--extra-verbose") == 0)
++	verbosity = CK_VERBOSE;
+     else {
+       fprintf(stderr, "runtests: unknown option '%s'\n", opt);
+       return 2;
+--
+2.17.1
diff --git a/poky/meta/recipes-core/expat/expat/run-ptest b/poky/meta/recipes-core/expat/expat/run-ptest
new file mode 100644
index 0000000..1b39cec
--- /dev/null
+++ b/poky/meta/recipes-core/expat/expat/run-ptest
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+output=${1:-"expat_tests.log"} # default log file
+
+# logging function
+function testCheck() {
+	testExec="$1"
+	shift
+	echo && echo ${testExec} && ./${testExec} "$@"
+	error=$?
+	result=$([[ ${error} -eq 0 ]] && echo "PASS" || echo "FAIL")
+	echo "${result}: ${testExec}" && echo "============================"
+}
+
+export output
+export -f testCheck
+TIME=$(which time)
+
+echo "Architecture: $(uname -m)" > ${output}
+echo "Image: $(uname -sr)" >> ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtests -vv" |& tee -a ${output}
+${TIME} -f 'Execution time: %e s' bash -c "testCheck runtestspp -vv" |& tee -a ${output}
+echo
diff --git a/poky/meta/recipes-core/expat/expat_2.2.9.bb b/poky/meta/recipes-core/expat/expat_2.2.9.bb
index 8f3db41..f477f99 100644
--- a/poky/meta/recipes-core/expat/expat_2.2.9.bb
+++ b/poky/meta/recipes-core/expat/expat_2.2.9.bb
@@ -8,15 +8,21 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/expat/expat-${PV}.tar.bz2 \
            file://libtool-tag.patch \
+	   file://run-ptest \
+	   file://0001-Add-output-of-tests-result.patch \
 	  "
 
 SRC_URI[md5sum] = "875a2c2ff3e8eb9e5a5cd62db2033ab5"
 SRC_URI[sha256sum] = "f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237"
 
-inherit autotools lib_package
+EXTRA_OECMAKE_class-native += "-DEXPAT_BUILD_DOCS=OFF"
 
-do_configure_prepend () {
-	rm -f ${S}/conftools/libtool.m4
+RDEPENDS_${PN}-ptest += "bash"
+
+inherit cmake lib_package ptest
+
+do_install_ptest_class-target() {
+	install -m 755 ${B}/tests/* ${D}${PTEST_PATH}
 }
 
-BBCLASSEXTEND = "native nativesdk"
+BBCLASSEXTEND += "native nativesdk"
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb
similarity index 92%
rename from poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb
rename to poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb
index 2e5f7a0..e4c834c 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.3.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.64.4.bb
@@ -20,8 +20,8 @@
 
 SRC_URI_append_class-native = " file://relocate-modules.patch"
 
-SRC_URI[md5sum] = "ccc48e58545cac45f5b3df3b8aeaff13"
-SRC_URI[sha256sum] = "fe9cbc97925d14c804935f067a3ad77ef55c0bbe9befe68962318f5a767ceb22"
+SRC_URI[md5sum] = "0a4f67e9a9d729976e2f797e36fc1a57"
+SRC_URI[sha256sum] = "f7e0b325b272281f0462e0f7fff25a833820cac19911ff677251daf6d87bce50"
 
 # Find any meson cross files in FILESPATH that are relevant for the current
 # build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/poky/meta/recipes-core/glibc/glibc_2.31.bb b/poky/meta/recipes-core/glibc/glibc_2.31.bb
index 61679e2..9b2cf1b 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.31.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.31.bb
@@ -1,6 +1,8 @@
 require glibc.inc
 require glibc-version.inc
 
+CVE_CHECK_WHITELIST += "CVE-2020-10029"
+
 DEPENDS += "gperf-native bison-native make-native"
 
 NATIVESDKFIXES ?= ""
diff --git a/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb b/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
index 733ae41..b6fc8a4 100644
--- a/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
+++ b/poky/meta/recipes-core/init-ifupdown/init-ifupdown_1.0.bb
@@ -34,7 +34,7 @@
 	touch ${D}${sysconfdir}/network/nm-disabled-eth0
 }
 
-PACKAGE_ARCH_qemuall = "${MACHINE_ARCH}"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
 RDEPENDS_${PN} = "netbase"
 RCONFLICTS_${PN} = "netbase (< 1:5.0)"
 
diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
similarity index 96%
rename from poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb
rename to poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
index e41ac21..b591f41 100644
--- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.57.bb
+++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
@@ -16,7 +16,7 @@
 LICENSE = "BSD-3-Clause & GPLv2"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072"
 
-SRCREV = "760c625ec0e1ffebec2e391d891d389da0f65726"
+SRCREV = "6a1860c6f5ad295af605ddf588933544e7c24ce1"
 SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/musl/musl.inc b/poky/meta/recipes-core/musl/musl.inc
index bdce412..54edfc8 100644
--- a/poky/meta/recipes-core/musl/musl.inc
+++ b/poky/meta/recipes-core/musl/musl.inc
@@ -9,7 +9,7 @@
 HOMEPAGE = "http://www.musl-libc.org/"
 LICENSE = "MIT"
 SECTION = "libs"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=f95ee848a08ad253c04723da00cedb01"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=b03f1cc25363d094011f8f4fd8bcfb68"
 
 INHIBIT_DEFAULT_DEPS = "1"
 
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 0913b09..ed2178b 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
 require musl.inc
 inherit linuxloader
 
-SRCREV = "fca7428c096066482d8c3f52450810288e27515c"
+SRCREV = "0a005f499cf39822166dd4db3d2d31f0639f1b1b"
 
 BASEVER = "1.2.0"
 
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index 532cceb..06fbf7a 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -7,6 +7,11 @@
 SECTION = "base"
 
 LICENSE = "GPLv2+ & LGPLv2.1+ & BSD-3-Clause & BSD-4-Clause"
+LICENSE_${PN}-libblkid = "LGPLv2.1+"
+LICENSE_${PN}-libfdisk = "LGPLv2.1+"
+LICENSE_${PN}-libmount = "LGPLv2.1+"
+LICENSE_${PN}-libsmartcols = "LGPLv2.1+"
+LICENSE_${PN}-libuuid = "BSD-3-Clause"
 
 LIC_FILES_CHKSUM = "file://README.licensing;md5=0fd5c050c6187d2bf0a4492b7f4e33da \
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
@@ -16,7 +21,10 @@
                     file://Documentation/licenses/COPYING.BSD-4-Clause-UC;md5=263860f8968d8bafa5392cab74285262 \
                     file://libuuid/COPYING;md5=6d2cafc999feb2c2de84d4d24b23290c \
                     file://libmount/COPYING;md5=7c7e39fb7d70ffe5d693a643e29987c2 \
-                    file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04"
+                    file://libblkid/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
+                    file://libfdisk/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
+                    file://libsmartcols/COPYING;md5=693bcbbe16d3a4a4b37bc906bc01cc04 \
+"
 
 #gtk-doc is not enabled as it requires xmlto which requires util-linux
 inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest
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"
diff --git a/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb b/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb
similarity index 94%
rename from poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb
rename to poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb
index 63e02ce..2f841de 100644
--- a/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.0.bb
+++ b/poky/meta/recipes-extended/asciidoc/asciidoc_9.0.1.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "git://github.com/asciidoc/asciidoc-py3;protocol=https \
            file://auto-catalogs.patch"
-SRCREV = "c44cb22b0cb110b69e4909c93c1cc6e2be5470cc"
+SRCREV = "fce6bd87fbdef5e510310464b02a75fb32f72f74"
 
 DEPENDS = "libxml2-native libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
 
diff --git a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
index 28c84af..badb71d 100644
--- a/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
+++ b/poky/meta/recipes-extended/libnsl/libnsl2_git.bb
@@ -10,9 +10,9 @@
 SECTION = "libs"
 DEPENDS = "libtirpc"
 
-PV = "1.2.0+git${SRCPV}"
+PV = "1.3.0"
 
-SRCREV = "4a062cf4180d99371198951e4ea5b4550efd58a3"
+SRCREV = "fbad7b36acaa89a54023930af70805649f962999"
 
 SRC_URI = "git://github.com/thkukuk/libnsl \
           "
diff --git a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
index f2e9e39..5aff2b5 100644
--- a/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
+++ b/poky/meta/recipes-extended/rpcsvc-proto/rpcsvc-proto.bb
@@ -15,9 +15,9 @@
 SECTION = "libs"
 DEPENDS += "rpcsvc-proto-native"
 
-PV = "1.4.1"
+PV = "1.4.2"
 
-SRCREV = "e295c9a3b67752734995dfc057bfbf5313ed0d82"
+SRCREV = "6f54e54455c073d08a56ea627c6cd2355a40eb53"
 
 SRC_URI = "git://github.com/thkukuk/${BPN} \
            file://0001-Use-cross-compiled-rpcgen.patch \
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb
similarity index 89%
rename from poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb
rename to poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb
index f1d91da..8ea0476 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.14.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.15.bb
@@ -9,7 +9,7 @@
            file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
            file://no_daddr_t.patch \
            "
-SRC_URI[sha256sum] = "b21436fdbd9dc482a3fd95ae27cccf0097d0f226361ea3785215f7a4ad50136b"
+SRC_URI[sha256sum] = "6a333650fb5c85c5221f10d2cf890e9fc56530696e118d975fbbe96126c06963"
 
 DEPENDS = "coreutils-native"
 
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb
index aac505a..d6bc1a9 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.9.1.bb
@@ -22,6 +22,7 @@
 EXTRA_OECONF += " \
              ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
              ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-tmpfiles.d=${nonarch_libdir}/tmpfiles.d', '--disable-tmpfiles.d', d)} \
+             --with-rundir=/run/sudo \
              --with-vardir=/var/lib/sudo \
              "
 
@@ -38,7 +39,7 @@
 	chmod 0440 ${D}${sysconfdir}/sudoers
 
 	# Explicitly remove the /sudo directory to avoid QA error
-	rmdir -p --ignore-fail-on-non-empty ${D}/sudo
+	rmdir -p --ignore-fail-on-non-empty ${D}/run/sudo
 }
 
 FILES_${PN} += "${nonarch_libdir}/tmpfiles.d"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb
similarity index 90%
rename from poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb
index 8ac318b..8eb4ac4 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.36.2.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.36.3.bb
@@ -14,7 +14,7 @@
 SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
            file://0002-help-meson.build-disable-the-use-of-yelp.patch \
            "
-SRC_URI[archive.sha256sum] = "c2e676aa0fe211809a5e7e8a7e461d182890f253c53f4610f2610094b6fbfb5e"
+SRC_URI[archive.sha256sum] = "621b5626374891769afec9c35946ab6c3910ea9cf9a2498bab166c99bd91e16f"
 
 FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
 RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
index f60880c..89480d7 100644
--- a/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
+++ b/poky/meta/recipes-graphics/igt-gpu-tools/igt-gpu-tools_git.bb
@@ -20,6 +20,8 @@
 
 PACKAGE_BEFORE_PN = "${PN}-benchmarks ${PN}-tests"
 
+PACKAGECONFIG[chamelium] = "-Dchamelium=enabled,-Dchamelium=disabled,gsl xmlrpc-c"
+
 EXTRA_OEMESON = "-Ddocs=disabled -Drunner=enabled"
 COMPATIBLE_HOST = "(x86_64.*|i.86.*|arm.*|aarch64).*-linux"
 COMPATIBLE_HOST_libc-musl_class-target = "null"
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb
similarity index 62%
rename from poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb
rename to poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb
index 3e2b806..f90bb51 100644
--- a/poky/meta/recipes-graphics/libva/libva-initial_2.7.1.bb
+++ b/poky/meta/recipes-graphics/libva/libva-initial_2.8.0.bb
@@ -1,7 +1,7 @@
 require libva.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[sha256sum] = "a00ff19d9f969259b9784172adad7788dbf3de827d985c5d27c230efd5d98a04"
+SRC_URI[sha256sum] = "adbb1244d278908f89ccfcf254a442de6d71934565a492cb6f03caf2ed4d1ec3"
 
 do_install_append () {
 	rm -f ${D}${libdir}/*.so*
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
similarity index 90%
rename from poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb
rename to poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
index 92a5b09..fbc5a05 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.7.1.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.8.0.bb
@@ -14,8 +14,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
 
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.7-branch"
-SRCREV = "5a24c635f6fb2b9ac31cab3360afca50e1860812"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.8-branch"
+SRCREV = "af101a46d24c3f71a12b9f1ddb0c63626b19b3d8"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
diff --git a/poky/meta/recipes-graphics/libva/libva_2.7.1.bb b/poky/meta/recipes-graphics/libva/libva_2.8.0.bb
similarity index 89%
rename from poky/meta/recipes-graphics/libva/libva_2.7.1.bb
rename to poky/meta/recipes-graphics/libva/libva_2.8.0.bb
index b2deb01..621ceea 100644
--- a/poky/meta/recipes-graphics/libva/libva_2.7.1.bb
+++ b/poky/meta/recipes-graphics/libva/libva_2.8.0.bb
@@ -1,7 +1,7 @@
 require libva.inc
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[sha256sum] = "a00ff19d9f969259b9784172adad7788dbf3de827d985c5d27c230efd5d98a04"
+SRC_URI[sha256sum] = "adbb1244d278908f89ccfcf254a442de6d71934565a492cb6f03caf2ed4d1ec3"
 
 PACKAGECONFIG ??= " \
     ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'glx', '', d)} \
diff --git a/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch b/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch
new file mode 100644
index 0000000..e5dff00
--- /dev/null
+++ b/poky/meta/recipes-graphics/startup-notification/startup-notification-0.12/time_t.patch
@@ -0,0 +1,108 @@
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From a7e49fefde18ea8d5bada8096d32f23bcfb5a6dc Mon Sep 17 00:00:00 2001
+From: "Federico G. Schwindt" <fgsch@openbsd.org>
+Date: Mon, 17 Feb 2014 15:48:12 +0100
+Subject: [PATCH 1/3] Fix crash on 32bit architectures where time_t is 64 bit
+
+This is an ABI change on platforms where sizeof(time_t) doesn't equal
+sizeof(long). For most platforms this change shouldn't make a difference
+at present. OpenBSD recently switched to 64bit time_t on all architectures
+to avoid time_t overflow in 2038 on 32bit machines.
+
+This fix extends to consumers of startup-notification, for instance
+the window manager of XFCE, which is how I got involved in this.
+See http://mail.xfce.org/pipermail/xfce4-dev/2014-February/030611.html
+and follow-ups. The XFCE devs pointed out that my patch to fix a
+crash in XFCE's window manager depends on this startup-notification patch.
+
+Signed-off-by: Julien Danjou <julien@danjou.info>
+---
+ libsn/sn-monitor.c | 8 ++++----
+ libsn/sn-monitor.h | 8 ++++----
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/libsn/sn-monitor.c b/libsn/sn-monitor.c
+index 2a9ad16..f419bc1 100644
+--- a/libsn/sn-monitor.c
++++ b/libsn/sn-monitor.c
+@@ -364,8 +364,8 @@ sn_startup_sequence_get_screen (SnStartupSequence *sequence)
+  **/
+ void
+ sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+-                                        long              *tv_sec,
+-                                        long              *tv_usec)
++                                        time_t            *tv_sec,
++                                        suseconds_t       *tv_usec)
+ {
+   if (tv_sec)
+     *tv_sec = sequence->initiation_time.tv_sec;
+@@ -386,8 +386,8 @@ sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+  **/
+ void
+ sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence,
+-                                          long              *tv_sec,
+-                                          long              *tv_usec)
++                                          time_t            *tv_sec,
++                                          suseconds_t       *tv_usec)
+ {
+   /* for now the same as get_initiated_time */
+   if (tv_sec)
+diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h
+index b58581f..2f639df 100644
+--- a/libsn/sn-monitor.h
++++ b/libsn/sn-monitor.h
+@@ -77,11 +77,11 @@ const char* sn_startup_sequence_get_application_id        (SnStartupSequence *se
+ int         sn_startup_sequence_get_screen                (SnStartupSequence *sequence);
+ 
+ void        sn_startup_sequence_get_initiated_time        (SnStartupSequence *sequence,
+-                                                           long              *tv_sec,
+-                                                           long              *tv_usec);
++                                                           time_t            *tv_sec,
++                                                           suseconds_t       *tv_usec);
+ void        sn_startup_sequence_get_last_active_time      (SnStartupSequence *sequence,
+-                                                           long              *tv_sec,
+-                                                           long              *tv_usec);
++                                                           time_t            *tv_sec,
++                                                           suseconds_t       *tv_usec);
+ 
+ void        sn_startup_sequence_complete                  (SnStartupSequence *sequence);
+ 
+-- 
+2.26.2
+
+From ea9f7e4cc6fd8c08d175ed7774ed2c5bd11c8ef0 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Mon, 17 Feb 2014 14:37:09 -0500
+Subject: [PATCH 2/3] Add include of <sys/select.h> for previous patch
+
+Unfortunately while the standard says that <sys/types.h> is the
+correct header to get suseconds_t, at least with glibc, that requires
+-DXOPEN_SOURCE.  Which is problematic for a public header, because
+then all *users* of startup-notification will be required to define
+that.
+
+Poking around a bit, it looks like at least with glibc, <sys/select.h>
+will give us an unconditional define.
+
+Signed-off-by: Julien Danjou <julien@danjou.info>
+---
+ libsn/sn-monitor.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h
+index 2f639df..cea4e12 100644
+--- a/libsn/sn-monitor.h
++++ b/libsn/sn-monitor.h
+@@ -28,6 +28,7 @@
+ #define __SN_MONITOR_H__
+ 
+ #include <libsn/sn-common.h>
++#include <sys/select.h>
+ 
+ SN_BEGIN_DECLS
+ 
+-- 
+2.26.2
+
diff --git a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
index a26ab44..d10bddb 100644
--- a/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
+++ b/poky/meta/recipes-graphics/startup-notification/startup-notification_0.12.bb
@@ -23,6 +23,7 @@
 
 SRC_URI = "http://www.freedesktop.org/software/startup-notification/releases/${BPN}-${PV}.tar.gz \
            file://obsolete_automake_macros.patch \
+           file://time_t.patch \
 "
 
 SRC_URI[md5sum] = "2cd77326d4dcaed9a5a23a1232fb38e9"
diff --git a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
index 552eb6a..6474599 100644
--- a/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
+++ b/poky/meta/recipes-kernel/cryptodev/cryptodev-module_1.10.bb
@@ -9,6 +9,7 @@
 
 SRC_URI += " \
 file://0001-Disable-installing-header-file-provided-by-another-p.patch \
+file://0001-Fix-build-for-Linux-5.8-rc1.patch \
 "
 
 EXTRA_OEMAKE='KERNEL_DIR="${STAGING_KERNEL_DIR}" PREFIX="${D}"'
diff --git a/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch b/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch
new file mode 100644
index 0000000..02c721a
--- /dev/null
+++ b/poky/meta/recipes-kernel/cryptodev/files/0001-Fix-build-for-Linux-5.8-rc1.patch
@@ -0,0 +1,49 @@
+From 9e765068582aae3696520346a7500322ca6cc2de Mon Sep 17 00:00:00 2001
+From: Joan Bruguera <joanbrugueram@gmail.com>
+Date: Sat, 13 Jun 2020 19:46:44 +0200
+Subject: [PATCH] Fix build for Linux 5.8-rc1
+
+See also: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9740ca4e95b43b91a4a848694a20d01ba6818f7b
+          https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=da1c55f1b272f4bd54671d459b39ea7b54944ef9
+          https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d8ed45c5dcd455fc5848d47f86883a1b872ac0d0
+
+Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
+
+Upstream-Status: Backport [9e765068582aae3696520346a7500322ca6cc2de]
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+---
+ zc.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/zc.c b/zc.c
+index ae464ff..2c286bb 100644
+--- a/zc.c
++++ b/zc.c
+@@ -58,7 +58,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
+ 		return 0;
+ 	}
+ 
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
+ 	down_read(&mm->mmap_sem);
++#else
++	mmap_read_lock(mm);
++#endif
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0))
+ 	ret = get_user_pages(task, mm,
+ 			(unsigned long)addr, pgcount, write, 0, pg, NULL);
+@@ -74,7 +78,11 @@ int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
+ 			(unsigned long)addr, pgcount, write ? FOLL_WRITE : 0,
+ 			pg, NULL, NULL);
+ #endif
++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 8, 0))
+ 	up_read(&mm->mmap_sem);
++#else
++	mmap_read_unlock(mm);
++#endif
+ 	if (ret != pgcount)
+ 		return -EINVAL;
+ 
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-kernel/kmod/kmod.inc b/poky/meta/recipes-kernel/kmod/kmod.inc
index b7c5cbe..edff191 100644
--- a/poky/meta/recipes-kernel/kmod/kmod.inc
+++ b/poky/meta/recipes-kernel/kmod/kmod.inc
@@ -31,5 +31,7 @@
 PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
 PACKAGECONFIG[logging] = " --enable-logging,--disable-logging"
 PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native"
+PACKAGECONFIG[xz] = "--with-xz,--without-xz,xz"
+PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl"
 
 GTKDOC_DOCDIR = "${S}/libkmod/docs"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb
index 392e03a..bf25ff8 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20200619.bb
@@ -278,9 +278,11 @@
              ${PN}-iwlwifi-7265d ${PN}-iwlwifi-8000c ${PN}-iwlwifi-8265 \
              ${PN}-iwlwifi-9000 \
              ${PN}-iwlwifi-misc \
-             ${PN}-ibt-license ${PN}-ibt ${PN}-ibt-misc \
+             ${PN}-ibt-license ${PN}-ibt \
              ${PN}-ibt-11-5 ${PN}-ibt-12-16 ${PN}-ibt-hw-37-7 ${PN}-ibt-hw-37-8 \
              ${PN}-ibt-17 \
+             ${PN}-ibt-20 \
+             ${PN}-ibt-misc \
              ${PN}-i915-license ${PN}-i915 \
              ${PN}-ice-license ${PN}-ice \
              ${PN}-adsp-sst-license ${PN}-adsp-sst \
@@ -805,6 +807,7 @@
 LICENSE_${PN}-ibt-11-5    = "Firmware-ibt_firmware"
 LICENSE_${PN}-ibt-12-16   = "Firmware-ibt_firmware"
 LICENSE_${PN}-ibt-17 = "Firmware-ibt_firmware"
+LICENSE_${PN}-ibt-20 = "Firmware-ibt_firmware"
 LICENSE_${PN}-ibt-misc    = "Firmware-ibt_firmware"
 
 FILES_${PN}-ibt-license = "${nonarch_base_libdir}/firmware/LICENCE.ibt_firmware"
@@ -813,13 +816,15 @@
 FILES_${PN}-ibt-11-5    = "${nonarch_base_libdir}/firmware/intel/ibt-11-5.sfi ${nonarch_base_libdir}/firmware/intel/ibt-11-5.ddc"
 FILES_${PN}-ibt-12-16   = "${nonarch_base_libdir}/firmware/intel/ibt-12-16.sfi ${nonarch_base_libdir}/firmware/intel/ibt-12-16.ddc"
 FILES_${PN}-ibt-17 = "${nonarch_base_libdir}/firmware/intel/ibt-17-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-17-*.ddc"
-FILES_${PN}-ibt-misc    = "${nonarch_base_libdir}/firmware/ibt-*"
+FILES_${PN}-ibt-20 = "${nonarch_base_libdir}/firmware/intel/ibt-20-*.sfi ${nonarch_base_libdir}/firmware/intel/ibt-20-*.ddc"
+FILES_${PN}-ibt-misc    = "${nonarch_base_libdir}/firmware/intel/ibt-*"
 
 RDEPENDS_${PN}-ibt-hw-37-7 = "${PN}-ibt-license"
 RDEPENDS_${PN}-ibt-hw-37.8 = "${PN}-ibt-license"
 RDEPENDS_${PN}-ibt-11-5    = "${PN}-ibt-license"
 RDEPENDS_${PN}-ibt-12-16   = "${PN}-ibt-license"
 RDEPENDS_${PN}-ibt-17 = "${PN}-ibt-license"
+RDEPENDS_${PN}-ibt-20 = "${PN}-ibt-license"
 RDEPENDS_${PN}-ibt-misc    = "${PN}-ibt-license"
 
 ALLOW_EMPTY_${PN}-ibt= "1"
diff --git a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
index 5940cc9..0c98535 100644
--- a/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/poky/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -108,6 +108,11 @@
 	fi
 
 	cp -a include $kerneldir/build/include
+
+	# we don't usually copy generated files, since they can be rebuilt on the target,
+	# but without this file, we get a forced syncconfig run in v5.8+, which prompts and
+	# breaks workflows.
+	cp -a --parents include/generated/autoconf.h $kerneldir/build 2>/dev/null || :
     )
 
     # now grab the chunks from the source tree that we need
@@ -249,6 +254,17 @@
     # Copy .config to include/config/auto.conf so "make prepare" is unnecessary.
     cp $kerneldir/build/.config $kerneldir/build/include/config/auto.conf
 
+    # make sure these are at least as old as the .config, or rebuilds will trigger
+    touch -r $kerneldir/build/.config $kerneldir/build/include/generated/autoconf.h 2>/dev/null || :
+    touch -r $kerneldir/build/.config $kerneldir/build/include/config/auto.conf* 2>/dev/null || :
+
+    if [ -e "$kerneldir/build/include/config/auto.conf.cmd" ]; then
+        sed -i 's/ifneq "$(CC)" ".*-linux-gcc.*$/ifneq "$(CC)" "gcc"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(LD)" ".*-linux-ld.bfd.*$/ifneq "$(LD)" "ld"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(CC_VERSION_TEXT)".*\(gcc.*\)"/ifneq "$(CC_VERSION_TEXT)" "\1"/' "$kerneldir/build/include/config/auto.conf.cmd"
+        sed -i 's/ifneq "$(srctree)" ".*"/ifneq "$(srctree)" "."/' "$kerneldir/build/include/config/auto.conf.cmd"
+    fi
+
     # make the scripts python3 safe. We won't be running these, and if they are
     # left as /usr/bin/python rootfs assembly will fail, since we only have python3
     # in the RDEPENDS (and the python3 package does not include /usr/bin/python)
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
index a4b593b..caa5b4e 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
@@ -11,13 +11,13 @@
         raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
 }
 
-SRCREV_machine ?= "6415a4e7c405526f97049ede833f52127a5ce7a1"
-SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0"
+SRCREV_machine ?= "508b4e6ada7f78b3ef5a9dbdd182d13dffe00123"
+SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
-LINUX_VERSION ?= "5.4.50"
+LINUX_VERSION ?= "5.4.51"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
index 0622d33..86e133f 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
@@ -6,7 +6,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-LINUX_VERSION ?= "5.4.50"
+LINUX_VERSION ?= "5.4.51"
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
@@ -15,9 +15,9 @@
 KMETA = "kernel-meta"
 KCONF_BSP_AUDIT_LEVEL = "2"
 
-SRCREV_machine_qemuarm ?= "1a8a14e45f01cfee926c5b35d2d67e6f1a7eebfc"
-SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0"
+SRCREV_machine_qemuarm ?= "d4c9ad88abadd22f7b2785e8a101523fe9a74dc0"
+SRCREV_machine ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
index 2476b35..e79793b 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto_5.4.bb
@@ -12,16 +12,16 @@
 KBRANCH_qemux86-64 ?= "v5.4/standard/base"
 KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
 
-SRCREV_machine_qemuarm ?= "99743105f331e90852ccb9e72ce26134dbcafec6"
-SRCREV_machine_qemuarm64 ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_machine_qemumips ?= "886870e5abaeaaf753fb50a1e5be56336c44c642"
-SRCREV_machine_qemuppc ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_machine_qemuriscv64 ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_machine_qemux86 ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_machine_qemux86-64 ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_machine_qemumips64 ?= "7548abbb409eeef6f0575eed25231090f902559e"
-SRCREV_machine ?= "94667198aabf869571bdff5291a24956796faddf"
-SRCREV_meta ?= "416566e1f01c3c02ca5b3a03d0943df387d521f0"
+SRCREV_machine_qemuarm ?= "601e67d37274e4a0890bcdbe6660c2dbd08d3b97"
+SRCREV_machine_qemuarm64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_machine_qemumips ?= "c8543a84037b88da45d0d825216187b42d0c509a"
+SRCREV_machine_qemuppc ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_machine_qemuriscv64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_machine_qemux86 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_machine_qemux86-64 ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_machine_qemumips64 ?= "c741fec6daabb449d08c9f96052be1477fe3c968"
+SRCREV_machine ?= "fed60f1c8e56095647fa8497270ecacea4c45dbc"
+SRCREV_meta ?= "caafbdfe382bf22a4786d871af097acd49d0867a"
 
 # remap qemuarm to qemuarma15 for the 5.4 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
@@ -30,7 +30,7 @@
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
-LINUX_VERSION ?= "5.4.50"
+LINUX_VERSION ?= "5.4.51"
 
 DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
 DEPENDS += "openssl-native util-linux-native"
diff --git a/poky/meta/recipes-kernel/perf/perf.bb b/poky/meta/recipes-kernel/perf/perf.bb
index d331d1b..e5bc7dc 100644
--- a/poky/meta/recipes-kernel/perf/perf.bb
+++ b/poky/meta/recipes-kernel/perf/perf.bb
@@ -26,6 +26,8 @@
 PACKAGECONFIG[audit] = ",NO_LIBAUDIT=1,audit"
 PACKAGECONFIG[manpages] = ",,xmlto-native asciidoc-native"
 PACKAGECONFIG[cap] = ",,libcap"
+# Arm CoreSight
+PACKAGECONFIG[coresight] = "CORESIGHT=1,,opencsd"
 
 # libunwind is not yet ported for some architectures
 PACKAGECONFIG_remove_arc = "libunwind"
diff --git a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
similarity index 93%
rename from poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb
rename to poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
index 1eb56f4..1ed1a7b 100644
--- a/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.1.bb
+++ b/poky/meta/recipes-multimedia/alsa/alsa-lib_1.2.3.2.bb
@@ -8,7 +8,7 @@
                     "
 
 SRC_URI = "https://www.alsa-project.org/files/pub/lib/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "1244585515fbebce7d0e53656c1fb614f99accb8413115ce3efb9a9309c4c892"
+SRC_URI[sha256sum] = "e81fc5b7afcaee8c9fd7f64a1e3043e88d62e9ad2c4cff55f578df6b0a9abe15"
 
 inherit autotools pkgconfig
 
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
similarity index 98%
rename from poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb
rename to poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
index b4cf278..517dac7 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.3.1.bb
@@ -26,7 +26,7 @@
 SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz \
            file://mips64_cpu_detection.patch \
            "
-SRC_URI[sha256sum] = "1d0ad06484f44bcb97eba5e93c40bcb893890f9f64aeb43e46cd9bb4cbd6795d"
+SRC_URI[sha256sum] = "ad009240d46e307b4e03a213a0f49c11b650e445b1f8be0dda2a9212b34d2ffb"
 
 # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
 ARM_INSTRUCTION_SET_armv4 = "arm"
diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch b/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch
deleted file mode 100644
index b7603c3..0000000
--- a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2017-14160.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 018ca26dece618457dd13585cad52941193c4a25 Mon Sep 17 00:00:00 2001
-From: Thomas Daede <daede003@umn.edu>
-Date: Wed, 9 May 2018 14:56:59 -0700
-Subject: [PATCH] CVE-2017-14160: fix bounds check on very low sample rates.
-
----
-CVE: CVE-2017-14160 CVE-2018-10393
-
-Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/018ca26d...]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
----
- lib/psy.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/psy.c b/lib/psy.c
-index 422c6f1..1310123 100644
---- a/lib/psy.c
-+++ b/lib/psy.c
-@@ -602,8 +602,9 @@ static void bark_noise_hybridmp(int n,const long *b,
-   for (i = 0, x = 0.f;; i++, x += 1.f) {
- 
-     lo = b[i] >> 16;
--    if( lo>=0 ) break;
-     hi = b[i] & 0xffff;
-+    if( lo>=0 ) break;
-+    if( hi>=n ) break;
- 
-     tN = N[hi] + N[-lo];
-     tX = X[hi] - X[-lo];
--- 
-1.7.9.5
-
diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch b/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch
deleted file mode 100644
index b7936b4..0000000
--- a/poky/meta/recipes-multimedia/libvorbis/libvorbis/CVE-2018-10392.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 112d3bd0aaacad51305e1464d4b381dabad0e88b Mon Sep 17 00:00:00 2001
-From: Thomas Daede <daede003@umn.edu>
-Date: Thu, 17 May 2018 16:19:19 -0700
-Subject: [PATCH] Sanity check number of channels in setup.
-
-Fixes #2335.
-
----
-CVE: CVE-2018-10392
-
-Upstream-Status: Backport [gitlab.com/Xiph.Org/Vorbis/Commits/112d3bd...]
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
----
-
- lib/vorbisenc.c |    1 +
- 1 file changed, 1 insertion(+)
-
-
-diff --git a/lib/vorbisenc.c b/lib/vorbisenc.c
-index 4fc7b62..64a51b5 100644
---- a/lib/vorbisenc.c
-+++ b/lib/vorbisenc.c
-@@ -684,6 +684,7 @@ int vorbis_encode_setup_init(vorbis_info *vi){
-   highlevel_encode_setup *hi=&ci->hi;
- 
-   if(ci==NULL)return(OV_EINVAL);
-+  if(vi->channels<1||vi->channels>255)return(OV_EINVAL);
-   if(!hi->impulse_block_p)i0=1;
- 
-   /* too low/high an ATH floater is nonsensical, but doesn't break anything */
--- 
-1.7.9.5
-
diff --git a/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb b/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
similarity index 61%
rename from poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb
rename to poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
index 1a3cdc2..c5c1034 100644
--- a/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.6.bb
+++ b/poky/meta/recipes-multimedia/libvorbis/libvorbis_1.3.7.bb
@@ -6,16 +6,14 @@
 BUGTRACKER = "https://trac.xiph.org"
 SECTION = "libs"
 LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=70c7063491d2d9f76a098d62ed5134f1 \
-                    file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73d9c8942c60b846c3bad13cc6c2e520 \
+                    file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=c95a4ac2b4125f00a9acf61449ebb843"
 DEPENDS = "libogg"
 
 SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz \
            file://0001-configure-Check-for-clang.patch \
-           file://CVE-2018-10392.patch \
-           file://CVE-2017-14160.patch \
           "
-SRC_URI[md5sum] = "b7d1692f275c73e7833ed1cc2697cd65"
-SRC_URI[sha256sum] = "af00bb5a784e7c9e69f56823de4637c350643deedaf333d0fa86ecdba6fcb415"
+SRC_URI[md5sum] = "50902641d358135f06a8392e61c9ac77"
+SRC_URI[sha256sum] = "b33cc4934322bcbf6efcbacf49e3ca01aadbea4114ec9589d1b1e9d20f72954b"
 
 inherit autotools pkgconfig
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb
similarity index 96%
rename from poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb
rename to poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb
index affbac4..aaa66e1 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.1.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.26.2.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=1e86753638d3cf2512528b99079bc4f3"
 
 SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "74d6629ab7f3dd9a588b0931528ba7ecfa989a2cad6bf53ffeef9de31b0fe032"
+SRC_URI[sha256sum] = "00f7bf7ea64fcec2c9d07751d6ad8849343ee09c282ea3b0d5dd486e886e2ff3"
 
 UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
index c7f3e67..4e32b27 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -63,14 +63,6 @@
 
 inherit autotools bash-completion pkgconfig useradd gettext perlnative systemd manpages gsettings
 
-# When compiling for Thumb or Thumb2, frame pointers _must_ be disabled since the
-# Thumb frame pointer in r7 clashes with pulseaudio's use of inline asm to make syscalls
-# (where r7 is used for the syscall NR). In most cases, frame pointers will be
-# disabled automatically due to the optimisation level, but append an explicit
-# -fomit-frame-pointer to handle cases where optimisation is set to -O0 or frame
-# pointers have been enabled by -fno-omit-frame-pointer earlier in CFLAGS, etc.
-CFLAGS_append_arm = " ${@bb.utils.contains('TUNE_CCARGS', '-mthumb', '-fomit-frame-pointer', '', d)}"
-
 # *.desktop rules wont be generated during configure and build will fail
 # if using --disable-nls
 USE_NLS = "yes"
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
new file mode 100644
index 0000000..aaa162f
--- /dev/null
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-remap_neon-use-register-r12-instead-of-r7.patch
@@ -0,0 +1,48 @@
+From 4a1668f341f0228904105f77fe5871b9d59b2663 Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <tanuk@iki.fi>
+Date: Mon, 13 Jul 2020 12:42:14 +0300
+Subject: [PATCH] remap_neon: use register r12 instead of r7
+
+When the Thumb instructions set is used and frame pointers are enabled
+(-fno-omit-frame-pointer), r7 can't be used, because it's used for the
+frame pointer. Trying to use r7 caused the compilation to fail.
+
+Thanks to Andre McCurdy for suggesting[1] this fix, all I had to do was to
+test that it works. The code builds now, and cpu-remap-test also
+succeeds.
+
+[1] https://lists.openembedded.org/g/openembedded-core/message/136786
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/324]
+
+Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
+---
+ src/pulsecore/remap_neon.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/src/pulsecore/remap_neon.c b/src/pulsecore/remap_neon.c
+index ca3b95b48..6f71345f8 100644
+--- a/src/pulsecore/remap_neon.c
++++ b/src/pulsecore/remap_neon.c
+@@ -52,11 +52,15 @@ static void remap_mono_to_stereo_float32ne_generic_arm(pa_remap_t *m, float *dst
+         __asm__ __volatile__ (
+             "ldm        %[src]!, {r4,r6}        \n\t"
+             "mov        r5, r4                  \n\t"
+-            "mov        r7, r6                  \n\t"
+-            "stm        %[dst]!, {r4-r7}        \n\t"
++
++            /* We use r12 instead of r7 here, because r7 is reserved for the
++             * frame pointer when using Thumb. */
++            "mov        r12, r6                 \n\t"
++
++            "stm        %[dst]!, {r4-r6,r12}    \n\t"
+             : [dst] "+r" (dst), [src] "+r" (src) /* output operands */
+             : /* input operands */
+-            : "memory", "r4", "r5", "r6", "r7" /* clobber list */
++            : "memory", "r4", "r5", "r6", "r12" /* clobber list */
+         );
+     }
+ 
+-- 
+2.20.1
+
diff --git a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
index d2f201d..53e9a23 100644
--- a/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
+++ b/poky/meta/recipes-multimedia/pulseaudio/pulseaudio_13.0.bb
@@ -4,6 +4,7 @@
            file://0001-client-conf-Add-allow-autospawn-for-root.patch \
            file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
            file://0001-remap-arm-Adjust-inline-asm-constraints.patch \
+           file://0001-remap_neon-use-register-r12-instead-of-r7.patch \
            file://volatiles.04_pulse \
            "
 SRC_URI[md5sum] = "e41d606f90254ed45c90520faf83d95c"
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb
similarity index 97%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb
index e9941c7..0158092 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.28.2.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.28.3.bb
@@ -20,8 +20,7 @@
            file://0001-Fix-build-with-musl.patch \
            file://include_array.patch \
            "
-SRC_URI[md5sum] = "ec0ef870ca37e3a5ebbead2f268a28ec"
-SRC_URI[sha256sum] = "b9d23525cfd8d22c37b5d964a9fe9a8ce7583042a2f8d3922e71e6bbc68c30bd"
+SRC_URI[sha256sum] = "f0898ac072c220e13a4aee819408421a6cb56a6eb89170ceafe52468b0903522"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gtk-doc
 
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_150.bb b/poky/meta/recipes-support/diffoscope/diffoscope_151.bb
similarity index 82%
rename from poky/meta/recipes-support/diffoscope/diffoscope_150.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_151.bb
index 58bd60a..9b39b44 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_150.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_151.bb
@@ -7,7 +7,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "0b9e4ae401fe4cbb8ce89b0bcabe608581d0ed53b91a28f18337179c7494af57"
+SRC_URI[sha256sum] = "f15e04aa537f0a3d91c99bf631c604668f4eea8f6552c5f93ea9be2bf014df84"
 
 RDEPENDS_${PN} += "binutils vim squashfs-tools python3-libarchive-c python3-magic"
 
diff --git a/poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb b/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb
similarity index 75%
rename from poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb
rename to poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb
index 21217ab..ba9e6f0 100644
--- a/poky/meta/recipes-support/fribidi/fribidi_1.0.9.bb
+++ b/poky/meta/recipes-support/fribidi/fribidi_1.0.10.bb
@@ -5,8 +5,8 @@
 
 SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.xz \
            "
-SRC_URI[md5sum] = "1b767c259c3cd8e0c8496970f63c22dc"
-SRC_URI[sha256sum] = "c5e47ea9026fb60da1944da9888b4e0a18854a0e2410bbfe7ad90a054d36e0c7"
+SRC_URI[md5sum] = "97c87da9930e8e70fbfc8e2bcd031554"
+SRC_URI[sha256sum] = "7f1c687c7831499bcacae5e8675945a39bacbad16ecaa945e9454a32df653c01"
 
 UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
 
diff --git a/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch b/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
index 2c204e0..0e78f56 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/0001-configure.ac-use-a-custom-value-for-the-location-of-.patch
@@ -1,4 +1,4 @@
-From e7ad11cf54475e455fdb84d118e4782961698567 Mon Sep 17 00:00:00 2001
+From 0e51c62706a8c54e90a2d98c5250ecc894c65182 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 22 Jan 2018 18:00:21 +0200
 Subject: [PATCH] configure.ac: use a custom value for the location of
@@ -14,10 +14,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 919ab31..cd58fdb 100644
+index f3c9863..a57f559 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1855,7 +1855,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
+@@ -1856,7 +1856,7 @@ AC_DEFINE_UNQUOTED(GPGCONF_DISP_NAME, "GPGConf",
  
  AC_DEFINE_UNQUOTED(GPGTAR_NAME, "gpgtar", [The name of the gpgtar tool])
  
diff --git a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
index e5a82aa..25732a8 100644
--- a/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
+++ b/poky/meta/recipes-support/gnupg/gnupg/relocate.patch
@@ -1,4 +1,4 @@
-From 59c077f32e81190955910cae02599c7a3edfa7fb Mon Sep 17 00:00:00 2001
+From 6e3b1d89758c3ee7072aeefa305ce5fe76f2e439 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Wed, 19 Sep 2018 14:44:40 +0100
 Subject: [PATCH] Allow the environment to override where gnupg looks for its
@@ -12,10 +12,10 @@
  1 file changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/common/homedir.c b/common/homedir.c
-index e9e75d0..19140aa 100644
+index 4b6e46e..58989b4 100644
 --- a/common/homedir.c
 +++ b/common/homedir.c
-@@ -760,7 +760,7 @@ gnupg_socketdir (void)
+@@ -763,7 +763,7 @@ gnupg_socketdir (void)
    if (!name)
      {
        unsigned int dummy;
@@ -24,7 +24,7 @@
      }
  
    return name;
-@@ -786,7 +786,7 @@ gnupg_sysconfdir (void)
+@@ -789,7 +789,7 @@ gnupg_sysconfdir (void)
      }
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -33,7 +33,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -815,7 +815,7 @@ gnupg_bindir (void)
+@@ -818,7 +818,7 @@ gnupg_bindir (void)
    else
      return rdir;
  #else /*!HAVE_W32_SYSTEM*/
@@ -42,7 +42,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -828,7 +828,7 @@ gnupg_libexecdir (void)
+@@ -831,7 +831,7 @@ gnupg_libexecdir (void)
  #ifdef HAVE_W32_SYSTEM
    return gnupg_bindir ();
  #else /*!HAVE_W32_SYSTEM*/
@@ -51,7 +51,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -842,7 +842,7 @@ gnupg_libdir (void)
+@@ -845,7 +845,7 @@ gnupg_libdir (void)
      name = xstrconcat (w32_rootdir (), DIRSEP_S "lib" DIRSEP_S "gnupg", NULL);
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -60,7 +60,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -856,7 +856,7 @@ gnupg_datadir (void)
+@@ -859,7 +859,7 @@ gnupg_datadir (void)
      name = xstrconcat (w32_rootdir (), DIRSEP_S "share" DIRSEP_S "gnupg", NULL);
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -69,7 +69,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -872,7 +872,7 @@ gnupg_localedir (void)
+@@ -875,7 +875,7 @@ gnupg_localedir (void)
                         NULL);
    return name;
  #else /*!HAVE_W32_SYSTEM*/
@@ -78,7 +78,7 @@
  #endif /*!HAVE_W32_SYSTEM*/
  }
  
-@@ -940,7 +940,7 @@ gnupg_cachedir (void)
+@@ -943,7 +943,7 @@ gnupg_cachedir (void)
      }
    return dir;
  #else /*!HAVE_W32_SYSTEM*/
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb b/poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb
similarity index 94%
rename from poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb
rename to poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb
index f754573..701d769 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.2.20.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.2.21.bb
@@ -20,8 +20,7 @@
                                 file://relocate.patch"
 SRC_URI_append_class-nativesdk = " file://relocate.patch"
 
-SRC_URI[md5sum] = "4ff88920cf52b35db0dedaee87bdbbb1"
-SRC_URI[sha256sum] = "04a7c9d48b74c399168ee8270e548588ddbe52218c337703d7f06373d326ca30"
+SRC_URI[sha256sum] = "61e83278fb5fa7336658a8b73ab26f379d41275bb1c7c6e694dd9f9a6e8e76ec"
 
 EXTRA_OECONF = "--disable-ldap \
 		--disable-ccid-driver \
diff --git a/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch b/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch
new file mode 100644
index 0000000..a610abf
--- /dev/null
+++ b/poky/meta/recipes-support/gnutls/gnutls/0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch
@@ -0,0 +1,90 @@
+From c0ae3f659c6c130d151378ba4d7d861e3b7b970f Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@cn.fujitsu.com>
+Date: Wed, 8 Jul 2020 14:50:27 +0900
+Subject: [PATCH] Modied the license to GPLv2.1+ to keep with LICENSE file.
+
+Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
+Please reference to https://gitlab.com/gnutls/gnutls/-/issues/1018.
+Upstream-Status: Backport [https://gitlab.com/gnutls/gnutls/-/merge_requests/1285].
+---
+ lib/x509/krb5.c | 20 +++++++++++---------
+ lib/x509/krb5.h | 20 +++++++++++---------
+ 2 files changed, 22 insertions(+), 18 deletions(-)
+
+diff --git a/lib/x509/krb5.c b/lib/x509/krb5.c
+index 7fe84e6..d68c737 100644
+--- a/lib/x509/krb5.c
++++ b/lib/x509/krb5.c
+@@ -1,21 +1,23 @@
+ /*
+  * Copyright (C) 2015 Red Hat, Inc.
+  *
++ * Author: Nikos Mavrogiannopoulos
++ *
+  * This file is part of GnuTLS.
+  *
+- * GnuTLS 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 of the License, or
+- * (at your option) any later version.
++ * The GnuTLS is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public License
++ * as published by the Free Software Foundation; either version 2.1 of
++ * the License, or (at your option) any later version.
+  *
+- * GnuTLS is distributed in the hope that it will be useful, but
++ * This library 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.
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program.  If not, see <https://www.gnu.org/licenses/>
+  *
+- * You should have received a copy of the GNU General Public License
+- * along with this program.  If not, see
+- * <https://www.gnu.org/licenses/>.
+  */
+ 
+ #include <config.h>
+diff --git a/lib/x509/krb5.h b/lib/x509/krb5.h
+index d8926af..815bb28 100644
+--- a/lib/x509/krb5.h
++++ b/lib/x509/krb5.h
+@@ -1,21 +1,23 @@
+ /*
+  * Copyright (C) 2015 Red Hat, Inc.
+  *
++ * Author: Nikos Mavrogiannopoulos
++ *
+  * This file is part of GnuTLS.
+  *
+- * GnuTLS 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 of the License, or
+- * (at your option) any later version.
++ * The GnuTLS is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public License
++ * as published by the Free Software Foundation; either version 2.1 of
++ * the License, or (at your option) any later version.
+  *
+- * GnuTLS is distributed in the hope that it will be useful, but
++ * This library 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.
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public License
++ * along with this program.  If not, see <https://www.gnu.org/licenses/>
+  *
+- * You should have received a copy of the GNU General Public License
+- * along with this program.  If not, see
+- * <https://www.gnu.org/licenses/>.
+  */
+ 
+ #ifndef GNUTLS_LIB_X509_KRB5_H
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb b/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb
index a285e5a..cc0454a 100644
--- a/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb
+++ b/poky/meta/recipes-support/gnutls/gnutls_3.6.14.bb
@@ -19,6 +19,7 @@
 
 SRC_URI = "https://www.gnupg.org/ftp/gcrypt/gnutls/v${SHRT_VER}/gnutls-${PV}.tar.xz \
            file://arm_eabi.patch \
+           file://0001-Modied-the-license-to-GPLv2.1-to-keep-with-LICENSE-f.patch \
 "
 
 SRC_URI[sha256sum] = "5630751adec7025b8ef955af4d141d00d252a985769f51b4059e5affa3d39d63"
diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.11.bb b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
similarity index 91%
rename from poky/meta/recipes-support/libevent/libevent_2.1.11.bb
rename to poky/meta/recipes-support/libevent/libevent_2.1.12.bb
index fb186eb..29e8708 100644
--- a/poky/meta/recipes-support/libevent/libevent_2.1.11.bb
+++ b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -12,8 +12,7 @@
            file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \
            "
 
-SRC_URI[md5sum] = "7f35cfe69b82d879111ec0d7b7b1c531"
-SRC_URI[sha256sum] = "a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d"
+SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
 
 UPSTREAM_CHECK_URI = "http://libevent.org/"
 
diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
similarity index 93%
rename from poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb
rename to poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
index 4e0eb0a..ac09417 100644
--- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.5.bb
+++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.8.6.bb
@@ -26,8 +26,7 @@
            file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \
            file://determinism.patch \
 "
-SRC_URI[md5sum] = "348cc4601ca34307fc6cd6c945467743"
-SRC_URI[sha256sum] = "3b4a2a94cb637eff5bdebbcaf46f4d95c4f25206f459809339cdada0eb577ac3"
+SRC_URI[sha256sum] = "0cba2700617b99fc33864a0c16b1fa7fdf9781d9ed3509f5d767178e5fd7b975"
 
 BINCONFIG = "${bindir}/libgcrypt-config"
 
diff --git a/poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb b/poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb
similarity index 79%
rename from poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb
rename to poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb
index 00c2dc2..82b5516 100644
--- a/poky/meta/recipes-support/mpfr/mpfr_4.0.2.bb
+++ b/poky/meta/recipes-support/mpfr/mpfr_4.1.0.bb
@@ -11,8 +11,7 @@
 DEPENDS = "gmp autoconf-archive"
 
 SRC_URI = "https://www.mpfr.org/mpfr-${PV}/mpfr-${PV}.tar.xz"
-SRC_URI[md5sum] = "320fbc4463d4c8cb1e566929d8adc4f8"
-SRC_URI[sha256sum] = "1d3be708604eae0e42d578ba93b390c2a145f17743a744d8f3f8c2ad5855a38a"
+SRC_URI[sha256sum] = "0c98a3f1732ff6ca4ea690552079da9c597872d30e96ec28414ee23c95558a7f"
 
 UPSTREAM_CHECK_URI = "http://www.mpfr.org/mpfr-current/"
 
diff --git a/poky/meta/recipes-support/serf/serf_1.3.9.bb b/poky/meta/recipes-support/serf/serf_1.3.9.bb
index dd4133a..6a27f12 100644
--- a/poky/meta/recipes-support/serf/serf_1.3.9.bb
+++ b/poky/meta/recipes-support/serf/serf_1.3.9.bb
@@ -30,4 +30,4 @@
                   OPENSSL="${STAGING_EXECPREFIXDIR}" \
                   "
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/site/common b/poky/meta/site/common
index ff55232..6290727 100644
--- a/poky/meta/site/common
+++ b/poky/meta/site/common
@@ -19,3 +19,10 @@
 ac_cv_buggy_getaddrinfo=no
 
 ac_cv_path_SED=${ac_cv_path_SED=sed}
+
+# General
+ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no}
+
+# bash
+bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no}
+bash_cv_sys_siglist=${bash_cv_sys_siglist=no}
diff --git a/poky/meta/site/common-glibc b/poky/meta/site/common-glibc
index a0680bc..0a66565 100644
--- a/poky/meta/site/common-glibc
+++ b/poky/meta/site/common-glibc
@@ -1,5 +1,4 @@
 # general
-ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=yes}
 ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes}
 ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes}
 ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes}
@@ -18,8 +17,6 @@
 ac_cv_func_strtod=${ac_cv_func_strtod=yes}
 
 # bash
-bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=yes}
-bash_cv_sys_siglist=${bash_cv_sys_siglist=yes}
 bash_cv_getcwd_malloc=${bash_cv_getcwd_malloc=yes}
 
 # clamav
diff --git a/poky/meta/site/common-musl b/poky/meta/site/common-musl
index 4be8d00..44a7a1a 100644
--- a/poky/meta/site/common-musl
+++ b/poky/meta/site/common-musl
@@ -1,5 +1,4 @@
 # general
-ac_cv_have_decl_sys_siglist=${ac_cv_have_decl_sys_siglist=no}
 ac_cv_func_calloc_0_nonnull=${ac_cv_func_calloc_0_nonnull=yes}
 ac_cv_func_realloc_works=${ac_cv_func_realloc_works=yes}
 ac_cv_func_realloc_0_nonnull=${ac_cv_func_realloc_0_nonnull=yes}
@@ -29,10 +28,6 @@
 #dbus-glib
 ac_cv_have_abstract_sockets=${ac_cv_have_abstract_sockets=yes}
 
-# bash
-bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no}
-bash_cv_sys_siglist=${bash_cv_sys_siglist=no}
-
 # coreutils
 fu_cv_sys_stat_statfs2_bsize=${fu_cv_sys_stat_statfs2_bsize=yes}
 gl_cv_func_getcwd_abort_bug=${gl_cv_func_getcwd_abort_bug=no}
diff --git a/poky/scripts/lib/recipetool/create.py b/poky/scripts/lib/recipetool/create.py
index 8d78c5b..566c753 100644
--- a/poky/scripts/lib/recipetool/create.py
+++ b/poky/scripts/lib/recipetool/create.py
@@ -66,7 +66,7 @@
         libdir = d.getVar('libdir')
         base_libdir = d.getVar('base_libdir')
         libpaths = list(set([base_libdir, libdir]))
-        libname_re = re.compile('^lib(.+)\.so.*$')
+        libname_re = re.compile(r'^lib(.+)\.so.*$')
         pkglibmap = {}
         for lib, item in shlib_providers.items():
             for path, pkg in item.items():
@@ -428,7 +428,7 @@
 
     if scriptutils.is_src_url(source):
         # Warn about github archive URLs
-        if re.match('https?://github.com/[^/]+/[^/]+/archive/.+(\.tar\..*|\.zip)$', source):
+        if re.match(r'https?://github.com/[^/]+/[^/]+/archive/.+(\.tar\..*|\.zip)$', source):
             logger.warning('github archive files are not guaranteed to be stable and may be re-generated over time. If the latter occurs, the checksums will likely change and the recipe will fail at do_fetch. It is recommended that you point to an actual commit or tag in the repository instead (using the repository URL in conjunction with the -S/--srcrev option).')
         # Fetch a URL
         fetchuri = reformat_git_uri(urldefrag(source)[0])
@@ -830,7 +830,7 @@
         elif line.startswith('PV = '):
             if realpv:
                 # Replace the first part of the PV value
-                line = re.sub('"[^+]*\+', '"%s+' % realpv, line)
+                line = re.sub(r'"[^+]*\+', '"%s+' % realpv, line)
         lines_before.append(line)
 
     if args.also_native:
@@ -1066,8 +1066,8 @@
     import oe.utils
 
     # Note: these are carefully constructed!
-    license_title_re = re.compile('^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$')
-    license_statement_re = re.compile('^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$')
+    license_title_re = re.compile(r'^\(?(#+ *)?(The )?.{1,10} [Ll]icen[sc]e( \(.{1,10}\))?\)?:?$')
+    license_statement_re = re.compile(r'^(This (project|software) is( free software)? (released|licen[sc]ed)|(Released|Licen[cs]ed)) under the .{1,10} [Ll]icen[sc]e:?$')
     copyright_re = re.compile('^(#+)? *Copyright .*$')
 
     crunched_md5sums = {}
diff --git a/poky/scripts/lib/wic/filemap.py b/poky/scripts/lib/wic/filemap.py
index c53147c..4d9da28 100644
--- a/poky/scripts/lib/wic/filemap.py
+++ b/poky/scripts/lib/wic/filemap.py
@@ -142,15 +142,6 @@
 
         raise Error("the method is not implemented")
 
-    def block_is_unmapped(self, block): # pylint: disable=W0613,R0201
-        """
-        This method has has to be implemented by child classes. It returns
-        'True' if block number 'block' of the image file is not mapped (hole)
-        and 'False' otherwise.
-        """
-
-        raise Error("the method is not implemented")
-
     def get_mapped_ranges(self, start, count): # pylint: disable=W0613,R0201
         """
         This method has has to be implemented by child classes. This is a
@@ -164,15 +155,6 @@
 
         raise Error("the method is not implemented")
 
-    def get_unmapped_ranges(self, start, count): # pylint: disable=W0613,R0201
-        """
-        This method has has to be implemented by child classes. Just like
-        'get_mapped_ranges()', but yields unmapped block ranges instead
-        (holes).
-        """
-
-        raise Error("the method is not implemented")
-
 
 # The 'SEEK_HOLE' and 'SEEK_DATA' options of the file seek system call
 _SEEK_DATA = 3
@@ -265,15 +247,10 @@
                         % (block, result))
         return result
 
-    def block_is_unmapped(self, block):
-        """Refer the '_FilemapBase' class for the documentation."""
-        return not self.block_is_mapped(block)
-
     def _get_ranges(self, start, count, whence1, whence2):
         """
-        This function implements 'get_mapped_ranges()' and
-        'get_unmapped_ranges()' depending on what is passed in the 'whence1'
-        and 'whence2' arguments.
+        This function implements 'get_mapped_ranges()' depending
+        on what is passed in the 'whence1' and 'whence2' arguments.
         """
 
         assert whence1 != whence2
@@ -303,12 +280,6 @@
                         % (start, count, start + count - 1))
         return self._get_ranges(start, count, _SEEK_DATA, _SEEK_HOLE)
 
-    def get_unmapped_ranges(self, start, count):
-        """Refer the '_FilemapBase' class for the documentation."""
-        self._log.debug("FilemapSeek: get_unmapped_ranges(%d,  %d(%d))"
-                        % (start, count, start + count - 1))
-        return self._get_ranges(start, count, _SEEK_HOLE, _SEEK_DATA)
-
 
 # Below goes the FIEMAP ioctl implementation, which is not very readable
 # because it deals with the rather complex FIEMAP ioctl. To understand the
@@ -422,10 +393,6 @@
                         % (block, result))
         return result
 
-    def block_is_unmapped(self, block):
-        """Refer the '_FilemapBase' class for the documentation."""
-        return not self.block_is_mapped(block)
-
     def _unpack_fiemap_extent(self, index):
         """
         Unpack a 'struct fiemap_extent' structure object number 'index' from
@@ -502,23 +469,28 @@
                         % (first_prev, last_prev))
         yield (first_prev, last_prev)
 
-    def get_unmapped_ranges(self, start, count):
+class FilemapNobmap(_FilemapBase):
+    """
+    This class is used when both the 'SEEK_DATA/HOLE' and FIEMAP are not
+    supported by the filesystem or kernel.
+    """
+
+    def __init__(self, image, log=None):
         """Refer the '_FilemapBase' class for the documentation."""
-        self._log.debug("FilemapFiemap: get_unmapped_ranges(%d,  %d(%d))"
+
+        # Call the base class constructor first
+        _FilemapBase.__init__(self, image, log)
+        self._log.debug("FilemapNobmap: initializing")
+
+    def block_is_mapped(self, block):
+        """Refer the '_FilemapBase' class for the documentation."""
+        return True
+
+    def get_mapped_ranges(self, start, count):
+        """Refer the '_FilemapBase' class for the documentation."""
+        self._log.debug("FilemapNobmap: get_mapped_ranges(%d,  %d(%d))"
                         % (start, count, start + count - 1))
-        hole_first = start
-        for first, last in self._do_get_mapped_ranges(start, count):
-            if first > hole_first:
-                self._log.debug("FilemapFiemap: yielding range (%d, %d)"
-                                % (hole_first, first - 1))
-                yield (hole_first, first - 1)
-
-            hole_first = last + 1
-
-        if hole_first < start + count:
-            self._log.debug("FilemapFiemap: yielding range (%d, %d)"
-                            % (hole_first, start + count - 1))
-            yield (hole_first, start + count - 1)
+        yield (start, start + count -1)
 
 def filemap(image, log=None):
     """
@@ -533,7 +505,10 @@
     try:
         return FilemapFiemap(image, log)
     except ErrorNotSupp:
-        return FilemapSeek(image, log)
+        try:
+            return FilemapSeek(image, log)
+        except ErrorNotSupp:
+            return FilemapNobmap(image, log)
 
 def sparse_copy(src_fname, dst_fname, skip=0, seek=0,
                 length=0, api=None):
