From 0c4d9785de67933a48dfc16f290f86ad55299d8a Mon Sep 17 00:00:00 2001
From: zhangxianting <zhangxianting@uniontech.com>
Date: Fri, 13 Dec 2024 20:05:11 +0800
Subject: [PATCH] add sw64 support

---
 .../storage/pkg/idmap/idmapped_utils.go       |   6 +-
 vendor/golang.org/x/sys/cpu/byteorder.go      |   1 +
 vendor/golang.org/x/sys/cpu/cpu_linux_sw64.go |  12 +
 vendor/golang.org/x/sys/cpu/cpu_sw64.go       |  13 +
 vendor/golang.org/x/sys/unix/asm_linux_sw64.s |  55 ++
 .../x/sys/unix/syscall_linux_sw64.go          | 155 ++++
 vendor/golang.org/x/sys/unix/zerrors_linux.go |   3 +
 .../x/sys/unix/zerrors_linux_sw64.go          | 800 ++++++++++++++++++
 .../x/sys/unix/zsyscall_linux_sw64.go         | 617 ++++++++++++++
 .../x/sys/unix/zsysnum_linux_sw64.go          | 384 +++++++++
 .../x/sys/unix/ztypes_linux_sw64.go           | 687 +++++++++++++++
 11 files changed, 2732 insertions(+), 1 deletion(-)
 create mode 100644 vendor/golang.org/x/sys/cpu/cpu_linux_sw64.go
 create mode 100644 vendor/golang.org/x/sys/cpu/cpu_sw64.go
 create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_sw64.s
 create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sw64.go
 create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sw64.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sw64.go
 create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sw64.go
 create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sw64.go

diff --git a/vendor/github.com/containers/storage/pkg/idmap/idmapped_utils.go b/vendor/github.com/containers/storage/pkg/idmap/idmapped_utils.go
index 87484d9..5468752 100644
--- a/vendor/github.com/containers/storage/pkg/idmap/idmapped_utils.go
+++ b/vendor/github.com/containers/storage/pkg/idmap/idmapped_utils.go
@@ -61,7 +61,11 @@ func CreateUsernsProcess(uidMaps []idtools.IDMap, gidMaps []idtools.IDMap) (int,
 		_ = unix.Prctl(unix.PR_SET_PDEATHSIG, uintptr(unix.SIGKILL), 0, 0, 0)
 		// just wait for the SIGKILL
 		for {
-			syscall.Pause()
+                        if runtime.GOARCH == "sw64" {
+                                unix.Pause()
+                        } else {
+                                syscall.Pause()
+                        }
 		}
 	}
 	cleanupFunc := func() {
diff --git a/vendor/golang.org/x/sys/cpu/byteorder.go b/vendor/golang.org/x/sys/cpu/byteorder.go
index 271055b..fd6b241 100644
--- a/vendor/golang.org/x/sys/cpu/byteorder.go
+++ b/vendor/golang.org/x/sys/cpu/byteorder.go
@@ -47,6 +47,7 @@ func hostByteOrder() byteOrder {
 		"alpha",
 		"arm", "arm64",
 		"loong64",
+		"sw64",
 		"mipsle", "mips64le", "mips64p32le",
 		"nios2",
 		"ppc64le",
diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_sw64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_sw64.go
new file mode 100644
index 0000000..5ba384e
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_linux_sw64.go
@@ -0,0 +1,12 @@
+// 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.
+
+//go:build linux && sw64
+// +build linux
+// +build sw64
+
+package cpu
+
+func doinit() {
+}
diff --git a/vendor/golang.org/x/sys/cpu/cpu_sw64.go b/vendor/golang.org/x/sys/cpu/cpu_sw64.go
new file mode 100644
index 0000000..e4c24c9
--- /dev/null
+++ b/vendor/golang.org/x/sys/cpu/cpu_sw64.go
@@ -0,0 +1,13 @@
+// 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.
+
+//go:build linux && sw64
+// +build sw64
+
+package cpu
+
+const cacheLineSize = 128
+
+func initOptions() {
+}
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_sw64.s b/vendor/golang.org/x/sys/unix/asm_linux_sw64.s
new file mode 100644
index 0000000..4afa6ff
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_sw64.s
@@ -0,0 +1,55 @@
+// 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.
+
+//go:build linux && sw64 && gc
+
+#include "textflag.h"
+
+//
+// System calls for sw64, Linux
+//
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+#define SYSCALL SYS_CALL_B $131
+
+TEXT ·Syscall(SB),NOSPLIT|NOFRAME,$0-56
+	JMP	syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT|NOFRAME,$0-80
+	JMP	syscall·Syscall6(SB)
+
+TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
+	CALL	runtime·entersyscall(SB)
+	LDL	R16, a1+8(FP)
+	LDL	R17, a2+16(FP)
+	LDL	R18, a3+24(FP)
+	LDI	R19, ZERO
+	LDI	R20, ZERO
+	LDI	R21, ZERO
+	LDL	R0, trap+0(FP)	// syscall entry
+	SYSCALL
+	STL	R0, r1+32(FP)
+	STL	R20, r2+40(FP)
+	CALL	runtime·exitsyscall(SB)
+	RET
+
+TEXT ·RawSyscall(SB),NOSPLIT|NOFRAME,$0-56
+	JMP	syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT|NOFRAME,$0-80
+	JMP	syscall·RawSyscall6(SB)
+
+TEXT ·RawSyscallNoError(SB),NOSPLIT|NOFRAME,$0-48
+	LDL	R16, a1+8(FP)
+	LDL	R17, a2+16(FP)
+	LDL	R18, a3+24(FP)
+	LDI	R19, ZERO
+	LDI	R20, ZERO
+	LDI	R21, ZERO
+	LDL	R0, trap+0(FP)	// syscall entry
+	SYSCALL
+	STL	R0, r1+32(FP)
+	STL	R20, r2+40(FP)
+	RET
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sw64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sw64.go
new file mode 100644
index 0000000..7fd7f8e
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_sw64.go
@@ -0,0 +1,155 @@
+// 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.
+
+//go:build linux && sw64
+
+package unix
+
+
+const (
+	//generate by handle in zerrors_linux_sw64.go
+	//_snyh_TODO: this should be generate by improving build script
+	TIOCGWINSZ = 0x40087468
+)
+
+const (
+	//ALL OF THIS constants are WORKAROUND, and should be removing
+	SYS_NEWFSTATAT = SYS_FSTATAT64
+)
+
+// TODO(snyh):  correct handle Utime
+func Utime(path string, buf *Utimbuf) error {
+	tv := [2]Timeval{
+		{Sec: buf.Actime},
+		{Sec: buf.Modtime},
+	}
+	return utimes(path, &tv)
+}
+
+//sys	Fstat64(fd int, st *Stat_t) (err error)
+//sys	Lstat64(path string, st *Stat_t) (err error)
+//sys	Stat64(path string, st *Stat_t) (err error)
+func Fstat(fd int, st *Stat_t) (err error)      { return Fstat64(fd, st) }
+func Lstat(path string, st *Stat_t) (err error) { return Lstat64(path, st) }
+func Stat(path string, st *Stat_t) (err error)  { return Stat64(path, st) }
+
+//sys	getxuid() (uid int, euid int)
+func Getuid() (uid int)   { uid, _ = getxuid(); return }
+func Geteuid() (euid int) { _, euid = getxuid(); return }
+
+//sys	getxgid() (gid int, egid int)
+func Getgid() (gid int)   { gid, _ = getxgid(); return }
+func Getegid() (egid int) { _, egid = getxgid(); return }
+
+//sys	Statfs(path string, buf *Statfs_t) (err error)
+//sys	Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys	Fchown(fd int, uid int, gid int) (err error)
+//sys	Ftruncate(fd int, length int64) (err error)
+//sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
+//sys	Lchown(path string, uid int, gid int) (err error)
+//sys	Listen(s int, n int) (err error)
+//sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys	setfsgid(gid int) (prev int, err error)
+//sys	setfsuid(uid int) (prev int, err error)
+//sysnb	Setrlimit(resource int, rlim *Rlimit) (err error)
+//sys	Shutdown(fd int, how int) (err error)
+//sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+
+//sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys	Truncate(path string, length int64) (err error)
+//sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb	setgroups(n int, list *_Gid_t) (err error)
+//sys	getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys	setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb	socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb	socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb	getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb	getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys	recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+//sysnb	Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+	var tv Timeval
+	err = Gettimeofday(&tv)
+	if err != nil {
+		return 0, err
+	}
+	if t != nil {
+		*t = Time_t(tv.Sec)
+	}
+	return Time_t(tv.Sec), nil
+}
+
+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 Ioperm(from int, num int, on int) (err error) {
+	return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+	return ENOSYS
+}
+
+// func (r *PtraceRegs) PC() uint64 { return r.Epc }
+// func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc }
+
+func (iov *Iovec) SetLen(length int) {
+	iov.Len = uint64(length)
+}
+
+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 Pause() error {
+        _, err := ppoll(nil, 0, nil, nil)
+        return err
+}
+
+//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	Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT
+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	Ustat(dev int, ubuf *Ustat_t) (err error)
+//sys	futimesat(dirfd int, path string, times *[2]Timeval) (err error)
+//sys	utimes(path string, times *[2]Timeval) (err error)
+
+//sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
+
+func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) {
+        rsa.Service_name_len = uint64(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux.go b/vendor/golang.org/x/sys/unix/zerrors_linux.go
index a5d3ff8..bdb3bc5 100644
--- a/vendor/golang.org/x/sys/unix/zerrors_linux.go
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux.go
@@ -195,6 +195,7 @@ const (
 	AUDIT_ARCH_SHEL64                           = 0xc000002a
 	AUDIT_ARCH_SPARC                            = 0x2
 	AUDIT_ARCH_SPARC64                          = 0x8000002b
+	AUDIT_ARCH_SW64                             = 0xc0009916
 	AUDIT_ARCH_TILEGX                           = 0xc00000bf
 	AUDIT_ARCH_TILEGX32                         = 0x400000bf
 	AUDIT_ARCH_TILEPRO                          = 0x400000bc
@@ -893,6 +894,7 @@ const (
 	EM_SPARC32PLUS                              = 0x12
 	EM_SPARCV9                                  = 0x2b
 	EM_SPU                                      = 0x17
+	EM_SW64					    = 0x9916
 	EM_TILEGX                                   = 0xbf
 	EM_TILEPRO                                  = 0xbc
 	EM_TI_C6000                                 = 0x8c
@@ -1696,6 +1698,7 @@ const (
 	KEXEC_ARCH_RISCV                            = 0xf30000
 	KEXEC_ARCH_S390                             = 0x160000
 	KEXEC_ARCH_SH                               = 0x2a0000
+	KEXEC_ARCH_SW64                             = 0x99160000
 	KEXEC_ARCH_X86_64                           = 0x3e0000
 	KEXEC_FILE_NO_INITRAMFS                     = 0x4
 	KEXEC_FILE_ON_CRASH                         = 0x2
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sw64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sw64.go
new file mode 100644
index 0000000..bd9d846
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sw64.go
@@ -0,0 +1,800 @@
+// mkerrors.sh -Wall -Werror -static -I/tmp/sw64/include -m64
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+//go:build sw64 && linux
+// +build sw64,linux
+
+// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+// cgo -godefs -- -Wall -Werror -static -I/tmp/sw64/include -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+	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
+	BLKALIGNOFF					= 0x2000127a
+	BLKBSZGET					= 0x40081270
+	BLKBSZSET					= 0x80081271
+	BLKDISCARD					= 0x20001277
+	BLKDISCARDZEROES				= 0x2000127c
+	BLKFLSBUF					= 0x20001261
+	BLKFRAGET					= 0x20001265
+	BLKFRASET					= 0x20001264
+	BLKGETDISKSEQ					= 0x40081280
+	BLKGETSIZE					= 0x20001260
+	BLKGETSIZE64					= 0x40081272
+	BLKIOMIN					= 0x20001278
+	BLKIOOPT					= 0x20001279
+	BLKPBSZGET					= 0x2000127b
+	BLKRAGET					= 0x20001263
+	BLKRASET					= 0x20001262
+	BLKROGET					= 0x2000125e
+	BLKROSET					= 0x2000125d
+	BLKROTATIONAL					= 0x2000127e
+	BLKRRPART					= 0x2000125f
+	BLKSECDISCARD					= 0x2000127d
+	BLKSECTGET					= 0x20001267
+	BLKSECTSET					= 0x20001266
+	BLKSSZGET					= 0x20001268
+	BLKZEROOUT					= 0x2000127f
+	BOTHER						= 0x1f
+	BS1						= 0x8000
+	BSDLY						= 0x8000
+	CBAUD						= 0x1f
+	CBAUDEX						= 0x0
+	CIBAUD						= 0x1f0000
+	CLOCAL						= 0x8000
+	CR1						= 0x1000
+	CR2						= 0x2000
+	CR3						= 0x3000
+	CRDLY						= 0x3000
+	CREAD						= 0x800
+	CS6						= 0x100
+	CS7						= 0x200
+	CS8						= 0x300
+	CSIZE						= 0x300
+	CSTOPB						= 0x400
+	ECCGETLAYOUT					= 0x41484d11
+	ECCGETSTATS					= 0x40104d12
+	ECHOCTL						= 0x40
+	ECHOE						= 0x2
+	ECHOK						= 0x4
+	ECHOKE						= 0x1
+	ECHONL						= 0x10
+	ECHOPRT						= 0x20
+	EFD_CLOEXEC					= 0x200000
+	EFD_NONBLOCK					= 0x4
+	EPOLL_CLOEXEC					= 0x200000
+	EXTPROC						= 0x10000000
+	FF1						= 0x4000
+	FFDLY						= 0x4000
+	FICLONE						= 0x80049409
+	FICLONERANGE					= 0x8020940d
+	FLUSHO						= 0x800000
+	FS_IOC_ENABLE_VERITY				= 0x80806685
+	FS_IOC_GETFLAGS					= 0x40086601
+	FS_IOC_GET_ENCRYPTION_NONCE			= 0x4010661b
+	FS_IOC_GET_ENCRYPTION_POLICY			= 0x800c6615
+	FS_IOC_GET_ENCRYPTION_PWSALT			= 0x80106614
+	FS_IOC_SETFLAGS					= 0x80086602
+	FS_IOC_SET_ENCRYPTION_POLICY			= 0x400c6613
+	F_GETLK						= 0x7
+	F_GETLK64					= 0x7
+	F_GETOWN					= 0x6
+	F_RDLCK						= 0x1
+	F_SETLK						= 0x8
+	F_SETLK64					= 0x8
+	F_SETLKW					= 0x9
+	F_SETLKW64					= 0x9
+	F_SETOWN					= 0x5
+	F_UNLCK						= 0x8
+	F_WRLCK						= 0x2
+	HIDIOCGRAWINFO					= 0x40084803
+	HIDIOCGRDESC					= 0x50044802
+	HIDIOCGRDESCSIZE				= 0x40044801
+	HUPCL						= 0x4000
+	ICANON						= 0x100
+	IEXTEN						= 0x400
+	IN_CLOEXEC					= 0x200000
+	IN_NONBLOCK					= 0x4
+	IOCTL_VM_SOCKETS_GET_LOCAL_CID			= 0x200007b9
+	IP_LOCAL_PORT_RANGE				= 0x33
+	ISIG						= 0x80
+	IUCLC						= 0x1000
+	IXOFF						= 0x400
+	IXON						= 0x200
+	MAP_ANON					= 0x10
+	MAP_ANONYMOUS					= 0x10
+	MAP_DENYWRITE					= 0x2000
+	MAP_EXECUTABLE					= 0x4000
+	MAP_GROWSDOWN					= 0x1000
+	MAP_HUGETLB					= 0x100000
+	MAP_LOCKED					= 0x8000
+	MAP_NONBLOCK					= 0x40000
+	MAP_NORESERVE					= 0x10000
+	MAP_POPULATE					= 0x20000
+	MAP_STACK					= 0x80000
+	MCL_CURRENT					= 0x2000
+	MCL_FUTURE					= 0x4000
+	MCL_ONFAULT					= 0x8000
+	MEMERASE					= 0x80084d02
+	MEMERASE64					= 0x80104d14
+	MEMGETBADBLOCK					= 0x80084d0b
+	MEMGETINFO					= 0x40204d01
+	MEMGETOOBSEL					= 0x40c84d0a
+	MEMGETREGIONCOUNT				= 0x40044d07
+	MEMISLOCKED					= 0x40084d17
+	MEMLOCK						= 0x80084d05
+	MEMREAD						= 0xc0404d1a
+	MEMREADOOB					= 0xc0104d04
+	MEMSETBADBLOCK					= 0x80084d0c
+	MEMUNLOCK					= 0x80084d06
+	MTDFILEMODE					= 0x20004d13
+	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
+	OTPERASE					= 0x800c4d19
+	OTPGETREGIONCOUNT				= 0x80044d0e
+	OTPGETREGIONINFO				= 0x800c4d0f
+	OTPLOCK						= 0x400c4d10
+	OTPSELECT					= 0x40044d0d
+	O_APPEND					= 0x8
+	O_ASYNC						= 0x2000
+	O_CLOEXEC					= 0x200000
+	O_CREAT						= 0x200
+	O_DIRECT					= 0x80000
+	O_DIRECTORY					= 0x8000
+	O_DSYNC						= 0x4000
+	O_EXCL						= 0x800
+	O_FSYNC						= 0x404000
+	O_LARGEFILE					= 0x0
+	O_NDELAY					= 0x4
+	O_NOATIME					= 0x100000
+	O_NOCTTY					= 0x1000
+	O_NOFOLLOW					= 0x10000
+	O_NONBLOCK					= 0x4
+	O_PATH						= 0x800000
+	O_RSYNC						= 0x404000
+	O_SYNC						= 0x404000
+	O_TMPFILE					= 0x1008000
+	O_TRUNC						= 0x400
+	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
+	PPPIOCBRIDGECHAN				= 0x80047435
+	PPPIOCCONNECT					= 0x8004743a
+	PPPIOCDETACH					= 0x8004743c
+	PPPIOCDISCONN					= 0x20007439
+	PPPIOCGASYNCMAP					= 0x40047458
+	PPPIOCGCHAN					= 0x40047437
+	PPPIOCGDEBUG					= 0x40047441
+	PPPIOCGFLAGS					= 0x4004745a
+	PPPIOCGIDLE					= 0x4010743f
+	PPPIOCGIDLE32					= 0x4008743f
+	PPPIOCGIDLE64					= 0x4010743f
+	PPPIOCGL2TPSTATS				= 0x40487436
+	PPPIOCGMRU					= 0x40047453
+	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
+	PPPIOCUNBRIDGECHAN				= 0x20007434
+	PPPIOCXFERUNIT					= 0x2000744e
+	PR_SET_PTRACER_ANY				= 0xffffffffffffffff
+	PT_DA_MASK					= 0xa4
+	PT_DA_MATCH					= 0xa3
+	PT_DC_CTL					= 0xa7
+	PT_DV_MASK					= 0xa6
+	PT_DV_MATCH					= 0xa5
+	PT_F31_V1					= 0x62
+	PT_F31_V2					= 0x82
+	PT_FPCR						= 0x3f
+	PT_FPREG_BASE					= 0x20
+	PT_FPREG_END					= 0x3e
+	PT_IA_MASK					= 0xa9
+	PT_IA_MATCH					= 0xa8
+	PT_IDA_MASK					= 0xac
+	PT_IDA_MATCH					= 0xab
+	PT_IV_MATCH					= 0xaa
+	PT_MATCH_CTL					= 0xa7
+	PT_PC						= 0x40
+	PT_REG_BASE					= 0x0
+	PT_REG_END					= 0x1e
+	PT_TP						= 0x41
+	PT_UNIQUE					= 0x41
+	PT_VECREG_BASE					= 0x43
+	PT_VECREG_END					= 0xa1
+	RLIMIT_AS					= 0x7
+	RLIMIT_MEMLOCK					= 0x9
+	RLIMIT_NOFILE					= 0x6
+	RLIMIT_NPROC					= 0x8
+	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_PARAM_GET					= 0x80187013
+	RTC_PARAM_SET					= 0x80187014
+	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					= 0x200000
+	SFD_NONBLOCK					= 0x4
+	SIOCATMARK					= 0x40047307
+	SIOCGPGRP					= 0x40047309
+	SIOCGSTAMPNS_NEW				= 0x40108907
+	SIOCGSTAMP_NEW					= 0x40108906
+	SIOCINQ						= 0x4004667f
+	SIOCOUTQ					= 0x40047473
+	SIOCSPGRP					= 0x80047308
+	SOCK_CLOEXEC					= 0x200000
+	SOCK_DGRAM					= 0x2
+	SOCK_NONBLOCK					= 0x40000000
+	SOCK_STREAM					= 0x1
+	SOL_SOCKET					= 0xffff
+	SO_ACCEPTCONN					= 0x1014
+	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_BUF_LOCK					= 0x48
+	SO_BUSY_POLL					= 0x2e
+	SO_BUSY_POLL_BUDGET				= 0x46
+	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_NETNS_COOKIE					= 0x47
+	SO_NOFCS					= 0x2b
+	SO_OOBINLINE					= 0x100
+	SO_PASSCRED					= 0x11
+	SO_PASSPIDFD					= 0x4c
+	SO_PASSSEC					= 0x22
+	SO_PEEK_OFF					= 0x2a
+	SO_PEERCRED					= 0x12
+	SO_PEERGROUPS					= 0x3b
+	SO_PEERPIDFD					= 0x4d
+	SO_PEERSEC					= 0x1e
+	SO_PREFER_BUSY_POLL				= 0x45
+	SO_PROTOCOL					= 0x1028
+	SO_RCVBUF					= 0x1002
+	SO_RCVBUFFORCE					= 0x100b
+	SO_RCVLOWAT					= 0x1010
+	SO_RCVMARK					= 0x4b
+	SO_RCVTIMEO					= 0x1012
+	SO_RCVTIMEO_NEW					= 0x42
+	SO_RCVTIMEO_OLD					= 0x1012
+	SO_RESERVE_MEM					= 0x49
+	SO_REUSEADDR					= 0x4
+	SO_REUSEPORT					= 0x200
+	SO_RXQ_OVFL					= 0x28
+	SO_SECURITY_AUTHENTICATION			= 0x13
+	SO_SECURITY_ENCRYPTION_NETWORK			= 0x15
+	SO_SECURITY_ENCRYPTION_TRANSPORT		= 0x14
+	SO_SELECT_ERR_QUEUE				= 0x2d
+	SO_SNDBUF					= 0x1001
+	SO_SNDBUFFORCE					= 0x100a
+	SO_SNDLOWAT					= 0x1011
+	SO_SNDTIMEO					= 0x1013
+	SO_SNDTIMEO_NEW					= 0x43
+	SO_SNDTIMEO_OLD					= 0x1013
+	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_TXREHASH					= 0x4a
+	SO_TXTIME					= 0x3d
+	SO_TYPE						= 0x1008
+	SO_WIFI_STATUS					= 0x29
+	SO_ZEROCOPY					= 0x3c
+	TAB1						= 0x400
+	TAB2						= 0x800
+	TAB3						= 0xc00
+	TABDLY						= 0xc00
+	TCFLSH						= 0x2000741f
+	TCGETA						= 0x40127417
+	TCGETS						= 0x402c7413
+	TCGETS2						= 0x402c542a
+	TCSAFLUSH					= 0x2
+	TCSBRK						= 0x2000741d
+	TCSBRKP						= 0x5425
+	TCSETA						= 0x80127418
+	TCSETAF						= 0x8012741c
+	TCSETAW						= 0x80127419
+	TCSETS						= 0x802c7414
+	TCSETS2						= 0x802c542b
+	TCSETSF						= 0x802c7416
+	TCSETSF2					= 0x802c542d
+	TCSETSW						= 0x802c7415
+	TCSETSW2					= 0x802c542c
+	TCXONC						= 0x2000741e
+	TFD_CLOEXEC					= 0x200000
+	TFD_NONBLOCK					= 0x4
+	TIOCCBRK					= 0x5428
+	TIOCCONS					= 0x541d
+	TIOCEXCL					= 0x540c
+	TIOCGDEV					= 0x40045432
+	TIOCGETD					= 0x5424
+	TIOCGEXCL					= 0x40045440
+	TIOCGICOUNT					= 0x545d
+	TIOCGLCKTRMIOS					= 0x5456
+	TIOCGPGRP					= 0x40047477
+	TIOCGPKT					= 0x40045438
+	TIOCGPTLCK					= 0x40045439
+	TIOCGPTN					= 0x40045430
+	TIOCGPTPEER					= 0x20005441
+	TIOCGSERIAL					= 0x541e
+	TIOCGSID					= 0x5429
+	TIOCGSOFTCAR					= 0x5419
+	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
+	TIOCSETD					= 0x5423
+	TIOCSIG						= 0x80045436
+	TIOCSLCKTRMIOS					= 0x5457
+	TIOCSPGRP					= 0x80047476
+	TIOCSPTLCK					= 0x80045431
+	TIOCSSERIAL					= 0x541f
+	TIOCSSOFTCAR					= 0x541a
+	TIOCSTART					= 0x2000746e
+	TIOCSTI						= 0x5412
+	TIOCSWINSZ					= 0x5414
+	TIOCSTOP					= 0x2000746f
+	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					= 0xf
+	VEOF						= 0x0
+	VEOL						= 0x1
+	VEOL2						= 0x2
+	VMIN						= 0x10
+	VREPRINT					= 0x6
+	VSTART						= 0xc
+	VSTOP						= 0xd
+	VSUSP						= 0xa
+	VSWTC						= 0x7
+	VT1						= 0x10000
+	VTDLY						= 0x10000
+	VTIME						= 0x11
+	VWERASE						= 0x4
+	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
+	_HIDIOCGRAWNAME					= 0x40804804
+	XTABS						= 0xc00
+	_HIDIOCGRAWPHYS					= 0x40404805
+	_HIDIOCGRAWUNIQ					= 0x40404808
+)
+
+// Errors
+const (
+	EADDRINUSE					= syscall.Errno( 0x30)
+	EADDRNOTAVAIL					= syscall.Errno( 0x31)
+	EADV						= syscall.Errno( 0x6b)
+	EAFNOSUPPORT					= syscall.Errno( 0x2f)
+	EALREADY					= syscall.Errno( 0x25)
+	EBADE						= syscall.Errno( 0x61)
+	EBADFD						= syscall.Errno( 0x72)
+	EBADMSG						= syscall.Errno( 0x54)
+	EBADR						= syscall.Errno( 0x62)
+	EBADRQC						= syscall.Errno( 0x65)
+	EBADSLT						= syscall.Errno( 0x66)
+	EBFONT						= syscall.Errno( 0x68)
+	ECANCELED					= syscall.Errno( 0x83)
+	ECHRNG						= syscall.Errno( 0x58)
+	ECOMM						= syscall.Errno( 0x6d)
+	ECONNABORTED					= syscall.Errno( 0x35)
+	ECONNREFUSED					= syscall.Errno( 0x3d)
+	ECONNRESET					= syscall.Errno( 0x36)
+	EDEADLK						= syscall.Errno( 0xb)
+	EDEADLOCK					= syscall.Errno( 0xb)
+	EDESTADDRREQ					= syscall.Errno( 0x27)
+	EDOTDOT						= syscall.Errno( 0x6f)
+	EDQUOT						= syscall.Errno( 0x45)
+	EHOSTDOWN					= syscall.Errno( 0x40)
+	EHOSTUNREACH					= syscall.Errno( 0x41)
+	EHWPOISON					= syscall.Errno( 0x8b)
+	EIDRM						= syscall.Errno( 0x51)
+	EILSEQ						= syscall.Errno( 0x74)
+	EINPROGRESS					= syscall.Errno( 0x24)
+	EISCONN						= syscall.Errno( 0x38)
+	EISNAM						= syscall.Errno( 0x78)
+	EKEYEXPIRED					= syscall.Errno( 0x85)
+	EKEYREJECTED					= syscall.Errno( 0x87)
+	EKEYREVOKED					= syscall.Errno( 0x86)
+	EL2HLT						= syscall.Errno( 0x60)
+	EL2NSYNC					= syscall.Errno( 0x59)
+	EL3HLT						= syscall.Errno( 0x5a)
+	EL3RST						= syscall.Errno( 0x5b)
+	ELIBACC						= syscall.Errno( 0x7a)
+	ELIBBAD						= syscall.Errno( 0x7b)
+	ELIBEXEC					= syscall.Errno( 0x7e)
+	ELIBMAX						= syscall.Errno( 0x7d)
+	ELIBSCN						= syscall.Errno( 0x7c)
+	ELNRNG						= syscall.Errno( 0x5d)
+	ELOOP						= syscall.Errno( 0x3e)
+	EMEDIUMTYPE					= syscall.Errno( 0x82)
+	EMSGSIZE					= syscall.Errno( 0x28)
+	EMULTIHOP					= syscall.Errno( 0x6e)
+	ENAMETOOLONG					= syscall.Errno( 0x3f)
+	ENAVAIL						= syscall.Errno( 0x77)
+	ENETDOWN					= syscall.Errno( 0x32)
+	ENETRESET					= syscall.Errno( 0x34)
+	ENETUNREACH					= syscall.Errno( 0x33)
+	ENOANO						= syscall.Errno( 0x64)
+	ENOBUFS						= syscall.Errno( 0x37)
+	ENOCSI						= syscall.Errno( 0x5f)
+	ENODATA						= syscall.Errno( 0x56)
+	ENOKEY						= syscall.Errno( 0x84)
+	ENOLCK						= syscall.Errno( 0x4d)
+	ENOLINK						= syscall.Errno( 0x6a)
+	ENOMEDIUM					= syscall.Errno( 0x81)
+	ENOMSG						= syscall.Errno( 0x50)
+	ENONET						= syscall.Errno( 0x69)
+	ENOPKG						= syscall.Errno( 0x5c)
+	ENOPROTOOPT					= syscall.Errno( 0x2a)
+	ENOSR						= syscall.Errno( 0x52)
+	ENOSTR						= syscall.Errno( 0x57)
+	ENOSYS						= syscall.Errno( 0x4e)
+	ENOTCONN					= syscall.Errno( 0x39)
+	ENOTEMPTY					= syscall.Errno( 0x42)
+	ENOTNAM						= syscall.Errno( 0x76)
+	ENOTRECOVERABLE					= syscall.Errno( 0x89)
+	ENOTSOCK					= syscall.Errno( 0x26)
+	ENOTSUP						= syscall.Errno( 0x2d)
+	ENOTUNIQ					= syscall.Errno( 0x71)
+	EOPNOTSUPP					= syscall.Errno( 0x2d)
+	EOVERFLOW					= syscall.Errno( 0x70)
+	EOWNERDEAD					= syscall.Errno( 0x88)
+	EPFNOSUPPORT					= syscall.Errno( 0x2e)
+	EPROTO						= syscall.Errno( 0x55)
+	EPROTONOSUPPORT					= syscall.Errno( 0x2b)
+	EPROTOTYPE					= syscall.Errno( 0x29)
+	EREMCHG						= syscall.Errno( 0x73)
+	EREMOTE						= syscall.Errno( 0x47)
+	EREMOTEIO					= syscall.Errno( 0x79)
+	ERESTART					= syscall.Errno( 0x7f)
+	ERFKILL						= syscall.Errno( 0x8a)
+	ESHUTDOWN					= syscall.Errno( 0x3a)
+	ESOCKTNOSUPPORT					= syscall.Errno( 0x2c)
+	ESRMNT						= syscall.Errno( 0x6c)
+	ESTALE						= syscall.Errno( 0x46)
+	ESTRPIPE					= syscall.Errno( 0x80)
+	ETIME						= syscall.Errno( 0x53)
+	ETIMEDOUT					= syscall.Errno( 0x3c)
+	ETOOMANYREFS					= syscall.Errno( 0x3b)
+	EUCLEAN						= syscall.Errno( 0x75)
+	EUNATCH						= syscall.Errno( 0x5e)
+	EUSERS						= syscall.Errno( 0x44)
+	EXFULL						= syscall.Errno( 0x63)
+)
+
+// Signals
+const (
+	SIGBUS						= syscall.Signal( 0xa)
+	SIGCHLD						= syscall.Signal( 0x14)
+	SIGCLD						= syscall.Signal( 0x14)
+	SIGCONT						= syscall.Signal( 0x13)
+	SIGEMT						= syscall.Signal( 0x7)
+	SIGINFO						= syscall.Signal( 0x1d)
+	SIGIO						= syscall.Signal( 0x17)
+	SIGPOLL						= syscall.Signal( 0x17)
+	SIGPROF						= syscall.Signal( 0x1b)
+	SIGPWR						= syscall.Signal( 0x1d)
+	SIGSTOP						= syscall.Signal( 0x11)
+	SIGSYS						= syscall.Signal( 0xc)
+	SIGTSTP						= syscall.Signal( 0x12)
+	SIGTTIN						= syscall.Signal( 0x15)
+	SIGTTOU						= syscall.Signal( 0x16)
+	SIGURG						= syscall.Signal( 0x10)
+	SIGUSR1						= syscall.Signal( 0x1e)
+	SIGUSR2						= syscall.Signal( 0x1f)
+	SIGVTALRM					= syscall.Signal( 0x1a)
+	SIGWINCH					= syscall.Signal( 0x1c)
+	SIGXCPU						= syscall.Signal( 0x18)
+	SIGXFSZ						= syscall.Signal( 0x19)
+)
+
+
+// Error table
+var errorList = [...]struct {
+	num  syscall.Errno
+	name string
+	desc string
+} {
+	{ 1, "EDEADLK", "resource deadlock avoided" },
+	{ 2, "EINPROGRESS", "operation now in progress" },
+	{ 3, "EALREADY", "operation already in progress" },
+	{ 4, "ENOTSOCK", "socket operation on non-socket" },
+	{ 5, "EDESTADDRREQ", "destination address required" },
+	{ 6, "EMSGSIZE", "message too long" },
+	{ 7, "EPROTOTYPE", "protocol wrong type for socket" },
+	{ 8, "ENOPROTOOPT", "protocol not available" },
+	{ 9, "EPROTONOSUPPORT", "protocol not supported" },
+	{ 10, "ESOCKTNOSUPPORT", "socket type not supported" },
+	{ 11, "ENOTSUP", "operation not supported" },
+	{ 12, "EPFNOSUPPORT", "protocol family not supported" },
+	{ 13, "EAFNOSUPPORT", "address family not supported by protocol" },
+	{ 14, "EADDRINUSE", "address already in use" },
+	{ 15, "EADDRNOTAVAIL", "cannot assign requested address" },
+	{ 16, "ENETDOWN", "network is down" },
+	{ 17, "ENETUNREACH", "network is unreachable" },
+	{ 18, "ENETRESET", "network dropped connection on reset" },
+	{ 19, "ECONNABORTED", "software caused connection abort" },
+	{ 20, "ECONNRESET", "connection reset by peer" },
+	{ 21, "ENOBUFS", "no buffer space available" },
+	{ 22, "EISCONN", "transport endpoint is already connected" },
+	{ 23, "ENOTCONN", "transport endpoint is not connected" },
+	{ 24, "ESHUTDOWN", "cannot send after transport endpoint shutdown" },
+	{ 25, "ETOOMANYREFS", "too many references: cannot splice" },
+	{ 26, "ETIMEDOUT", "connection timed out" },
+	{ 27, "ECONNREFUSED", "connection refused" },
+	{ 28, "ELOOP", "too many levels of symbolic links" },
+	{ 29, "ENAMETOOLONG", "file name too long" },
+	{ 30, "EHOSTDOWN", "host is down" },
+	{ 31, "EHOSTUNREACH", "no route to host" },
+	{ 32, "ENOTEMPTY", "directory not empty" },
+	{ 33, "EUSERS", "too many users" },
+	{ 34, "EDQUOT", "disk quota exceeded" },
+	{ 35, "ESTALE", "stale file handle" },
+	{ 36, "EREMOTE", "object is remote" },
+	{ 37, "ENOLCK", "no locks available" },
+	{ 38, "ENOSYS", "function not implemented" },
+	{ 39, "ENOMSG", "no message of desired type" },
+	{ 40, "EIDRM", "identifier removed" },
+	{ 41, "ENOSR", "out of streams resources" },
+	{ 42, "ETIME", "timer expired" },
+	{ 43, "EBADMSG", "bad message" },
+	{ 44, "EPROTO", "protocol error" },
+	{ 45, "ENODATA", "no data available" },
+	{ 46, "ENOSTR", "device not a stream" },
+	{ 47, "ECHRNG", "channel number out of range" },
+	{ 48, "EL2NSYNC", "level 2 not synchronized" },
+	{ 49, "EL3HLT", "level 3 halted" },
+	{ 50, "EL3RST", "level 3 reset" },
+	{ 51, "ENOPKG", "package not installed" },
+	{ 52, "ELNRNG", "link number out of range" },
+	{ 53, "EUNATCH", "protocol driver not attached" },
+	{ 54, "ENOCSI", "no CSI structure available" },
+	{ 55, "EL2HLT", "level 2 halted" },
+	{ 56, "EBADE", "invalid exchange" },
+	{ 57, "EBADR", "invalid request descriptor" },
+	{ 58, "EXFULL", "exchange full" },
+	{ 59, "ENOANO", "no anode" },
+	{ 60, "EBADRQC", "invalid request code" },
+	{ 61, "EBADSLT", "invalid slot" },
+	{ 62, "EBFONT", "bad font file format" },
+	{ 63, "ENONET", "machine is not on the network" },
+	{ 64, "ENOLINK", "link has been severed" },
+	{ 65, "EADV", "advertise error" },
+	{ 66, "ESRMNT", "srmount error" },
+	{ 67, "ECOMM", "communication error on send" },
+	{ 68, "EMULTIHOP", "multihop attempted" },
+	{ 69, "EDOTDOT", "RFS specific error" },
+	{ 70, "EOVERFLOW", "value too large for defined data type" },
+	{ 71, "ENOTUNIQ", "name not unique on network" },
+	{ 72, "EBADFD", "file descriptor in bad state" },
+	{ 73, "EREMCHG", "remote address changed" },
+	{ 74, "EILSEQ", "invalid or incomplete multibyte or wide character" },
+	{ 75, "EUCLEAN", "structure needs cleaning" },
+	{ 76, "ENOTNAM", "not a XENIX named type file" },
+	{ 77, "ENAVAIL", "no XENIX semaphores available" },
+	{ 78, "EISNAM", "is a named type file" },
+	{ 79, "EREMOTEIO", "remote I/O error" },
+	{ 80, "ELIBACC", "can not access a needed shared library" },
+	{ 81, "ELIBBAD", "accessing a corrupted shared library" },
+	{ 82, "ELIBSCN", ".lib section in a.out corrupted" },
+	{ 83, "ELIBMAX", "attempting to link in too many shared libraries" },
+	{ 84, "ELIBEXEC", "cannot exec a shared library directly" },
+	{ 85, "ERESTART", "interrupted system call should be restarted" },
+	{ 86, "ESTRPIPE", "streams pipe error" },
+	{ 87, "ENOMEDIUM", "no medium found" },
+	{ 88, "EMEDIUMTYPE", "wrong medium type" },
+	{ 89, "ECANCELED", "operation canceled" },
+	{ 90, "ENOKEY", "required key not available" },
+	{ 91, "EKEYEXPIRED", "key has expired" },
+	{ 92, "EKEYREVOKED", "key has been revoked" },
+	{ 93, "EKEYREJECTED", "key was rejected by service" },
+	{ 94, "EOWNERDEAD", "owner died" },
+	{ 95, "ENOTRECOVERABLE", "state not recoverable" },
+	{ 96, "ERFKILL", "operation not possible due to RF-kill" },
+	{ 97, "EHWPOISON", "memory page has hardware error" },
+}
+
+
+
+// Signal table
+var signalList = [...]struct {
+	num  syscall.Signal
+	name string
+	desc string
+} {
+	{ 1, "SIGEMT", "EMT trap" },
+	{ 2, "SIGBUS", "bus error" },
+	{ 3, "SIGSYS", "bad system call" },
+	{ 4, "SIGURG", "urgent I/O condition" },
+	{ 5, "SIGSTOP", "stopped (signal)" },
+	{ 6, "SIGTSTP", "stopped" },
+	{ 7, "SIGCONT", "continued" },
+	{ 8, "SIGCHLD", "child exited" },
+	{ 9, "SIGTTIN", "stopped (tty input)" },
+	{ 10, "SIGTTOU", "stopped (tty output)" },
+	{ 11, "SIGIO", "I/O possible" },
+	{ 12, "SIGXCPU", "CPU time limit exceeded" },
+	{ 13, "SIGXFSZ", "file size limit exceeded" },
+	{ 14, "SIGVTALRM", "virtual timer expired" },
+	{ 15, "SIGPROF", "profiling timer expired" },
+	{ 16, "SIGWINCH", "window changed" },
+	{ 17, "SIGINFO", "power failure" },
+	{ 18, "SIGUSR1", "user defined signal 1" },
+	{ 19, "SIGUSR2", "user defined signal 2" },
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sw64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sw64.go
new file mode 100644
index 0000000..c0d97a3
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sw64.go
@@ -0,0 +1,617 @@
+// go run mksyscall.go -tags linux,sw64 syscall_linux.go syscall_linux_sw64.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+//go:build linux && sw64
+
+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 getxpid() (pid int, ppid int) {
+	r0, r1 := RawSyscallNoError(SYS_GETXPID, 0, 0, 0)
+	pid = int(r0)
+	ppid = int(r1)
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat64(fd int, st *Stat_t) (err error) {
+	_, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lstat64(path string, st *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(st)), 0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat64(path string, st *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(st)), 0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getxuid() (uid int, euid int) {
+	r0, r1 := SyscallNoError(SYS_GETXUID, 0, 0, 0)
+	uid = int(r0)
+	euid = int(r1)
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getxgid() (gid int, egid int) {
+	r0, r1 := SyscallNoError(SYS_GETXGID, 0, 0, 0)
+	gid = int(r0)
+	egid = int(r1)
+	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 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 Fchown(fd int, uid int, gid int) (err error) {
+	_, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+	_, _, e1 := 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 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 Lchown(path string, uid int, gid int) (err error) {
+	var _p0 *byte
+	_p0, err = BytePtrFromString(path)
+	if err != nil {
+		return
+	}
+	_, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Listen(s int, n int) (err error) {
+	_, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pread(fd int, p []byte, offset int64) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(p) > 0 {
+		_p0 = unsafe.Pointer(&p[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 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 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+	var _p0 unsafe.Pointer
+	if len(events) > 0 {
+		_p0 = unsafe.Pointer(&events[0])
+	} else {
+		_p0 = unsafe.Pointer(&_zero)
+	}
+	r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+	n = int(r0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+	_, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+	if e1 != 0 {
+		err = errnoErr(e1)
+	}
+	return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func 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 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 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 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 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
+}
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sw64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sw64.go
new file mode 100644
index 0000000..66d6d27
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sw64.go
@@ -0,0 +1,384 @@
+// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sw64/include /tmp/sw64/include/asm/unistd.h
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+//go:build sw64 && linux
+
+package unix
+
+const (
+	SYS_EXIT                    = 1
+	SYS_FORK                    = 2
+	SYS_READ                    = 3
+	SYS_WRITE                   = 4
+	SYS_CLOSE                   = 6
+	SYS_LINK                    = 9
+	SYS_UNLINK                  = 10
+	SYS_CHDIR                   = 12
+	SYS_FCHDIR                  = 13
+	SYS_MKNOD                   = 14
+	SYS_CHMOD                   = 15
+	SYS_CHOWN                   = 16
+	SYS_BRK                     = 17
+	SYS_LSEEK                   = 19
+	SYS_GETXPID                 = 20
+	SYS_UMOUNT2                 = 22
+	SYS_SETUID                  = 23
+	SYS_GETXUID                 = 24
+	SYS_PTRACE                  = 26
+	SYS_ACCESS                  = 33
+	SYS_SYNC                    = 36
+	SYS_KILL                    = 37
+	SYS_SETPGID                 = 39
+	SYS_DUP                     = 41
+	SYS_PIPE                    = 42
+	SYS_OPEN                    = 45
+	SYS_GETXGID                 = 47
+	SYS_ODD_SIGPROCMASK         = 48
+	SYS_ACCT                    = 51
+	SYS_SIGPENDING              = 52
+	SYS_IOCTL                   = 54
+	SYS_SYMLINK                 = 57
+	SYS_READLINK                = 58
+	SYS_EXECVE                  = 59
+	SYS_UMASK                   = 60
+	SYS_CHROOT                  = 61
+	SYS_GETPGRP                 = 63
+	SYS_VFORK                   = 66
+	SYS_STAT                    = 67
+	SYS_LSTAT                   = 68
+	SYS_MMAP                    = 71
+	SYS_MUNMAP                  = 73
+	SYS_MPROTECT                = 74
+	SYS_MADVISE                 = 75
+	SYS_VHANGUP                 = 76
+	SYS_GETGROUPS               = 79
+	SYS_SETGROUPS               = 80
+	SYS_SETPGRP                 = 82
+	SYS_GETHOSTNAME             = 87
+	SYS_SETHOSTNAME             = 88
+	SYS_DUP2                    = 90
+	SYS_FSTAT                   = 91
+	SYS_FCNTL                   = 92
+	SYS_POLL                    = 94
+	SYS_FSYNC                   = 95
+	SYS_SETPRIORITY             = 96
+	SYS_SOCKET                  = 97
+	SYS_CONNECT                 = 98
+	SYS_ACCEPT                  = 99
+	SYS_ODD_GETPRIORITY         = 100
+	SYS_SEND                    = 101
+	SYS_RECV                    = 102
+	SYS_SIGRETURN               = 103
+	SYS_BIND                    = 104
+	SYS_SETSOCKOPT              = 105
+	SYS_LISTEN                  = 106
+	SYS_SIGSUSPEND              = 111
+	SYS_RECVMSG                 = 113
+	SYS_SENDMSG                 = 114
+	SYS_GETSOCKOPT              = 118
+	SYS_SOCKETCALL              = 119
+	SYS_READV                   = 120
+	SYS_WRITEV                  = 121
+	SYS_FCHOWN                  = 123
+	SYS_FCHMOD                  = 124
+	SYS_RECVFROM                = 125
+	SYS_SETREUID                = 126
+	SYS_SETREGID                = 127
+	SYS_RENAME                  = 128
+	SYS_TRUNCATE                = 129
+	SYS_FTRUNCATE               = 130
+	SYS_FLOCK                   = 131
+	SYS_SETGID                  = 132
+	SYS_SENDTO                  = 133
+	SYS_SHUTDOWN                = 134
+	SYS_SOCKETPAIR              = 135
+	SYS_MKDIR                   = 136
+	SYS_RMDIR                   = 137
+	SYS_GETPEERNAME             = 141
+	SYS_GETRLIMIT               = 144
+	SYS_SETRLIMIT               = 145
+	SYS_SETSID                  = 147
+	SYS_QUOTACTL                = 148
+	SYS_GETSOCKNAME             = 150
+	SYS_SIGACTION               = 156
+	SYS_SETDOMAINNAME           = 166
+	SYS_BPF                     = 170
+	SYS_USERFAULTFD             = 171
+	SYS_MEMBARRIER              = 172
+	SYS_MLOCK2                  = 173
+	SYS_GETPID                  = 174
+	SYS_GETPPID                 = 175
+	SYS_GETUID                  = 176
+	SYS_GETEUID                 = 177
+	SYS_GETGID                  = 178
+	SYS_GETEGID                 = 179
+	SYS_PAUSE                   = 29
+	SYS_EPOLL_PWAIT2            = 180
+	SYS_MOUNT_SETATTR           = 181
+	SYS_QUOTACTL_FD             = 182
+	SYS_LANDLOCK_CREATE_RULESET = 183
+	SYS_LANDLOCK_ADD_RULE       = 184
+	SYS_LANDLOCK_RESTRICT_SELF  = 185
+	SYS_PROCESS_MRELEASE        = 187
+	SYS_FUTEX_WAITV             = 188
+	SYS_SET_MEMPOLICY_HOME_NODE = 189
+	SYS_CACHESTAT               = 190
+	SYS_FCHMODAT2               = 191
+	SYS_MSGCTL                  = 200
+	SYS_MSGGET                  = 201
+	SYS_MSGRCV                  = 202
+	SYS_MSGSND                  = 203
+	SYS_SEMCTL                  = 204
+	SYS_SEMGET                  = 205
+	SYS_SEMOP                   = 206
+	SYS_LCHOWN                  = 208
+	SYS_SHMAT                   = 209
+	SYS_SHMCTL                  = 210
+	SYS_SHMDT                   = 211
+	SYS_SHMGET                  = 212
+	SYS_MSYNC                   = 217
+	SYS_STATFS64                = 229
+	SYS_FSTATFS64               = 230
+	SYS_GETPGID                 = 233
+	SYS_GETSID                  = 234
+	SYS_SIGALTSTACK             = 235
+	SYS_SYSFS                   = 254
+	SYS_GETSYSINFO              = 256
+	SYS_SETSYSINFO              = 257
+	SYS_PIDFD_SEND_SIGNAL       = 271
+	SYS_IO_URING_SETUP          = 272
+	SYS_IO_URING_ENTER          = 273
+	SYS_IO_URING_REGISTER       = 274
+	SYS_OPEN_TREE               = 275
+	SYS_MOVE_MOUNT              = 276
+	SYS_FSOPEN                  = 277
+	SYS_FSCONFIG                = 278
+	SYS_FSMOUNT                 = 279
+	SYS_FSPICK                  = 280
+	SYS_PIDFD_OPEN              = 281
+	SYS_CLONE3                  = 282
+	SYS_CLOSE_RANGE             = 283
+	SYS_OPENAT2                 = 284
+	SYS_PIDFD_GETFD             = 285
+	SYS_FACCESSAT2              = 286
+	SYS_PROCESS_MADVISE         = 287
+	SYS_PKEY_MPROTECT           = 288
+	SYS_PKEY_ALLOC              = 289
+	SYS_PKEY_FREE               = 290
+	SYS_GETPRIORITY             = 298
+	SYS_SIGPROCMASK             = 299
+	SYS_BDFLUSH                 = 300
+	SYS_MOUNT                   = 302
+	SYS_SWAPOFF                 = 304
+	SYS_GETDENTS                = 305
+	SYS_CREATE_MODULE           = 306
+	SYS_INIT_MODULE             = 307
+	SYS_DELETE_MODULE           = 308
+	SYS_GET_KERNEL_SYMS         = 309
+	SYS_SYSLOG                  = 310
+	SYS_REBOOT                  = 311
+	SYS_CLONE                   = 312
+	SYS_USELIB                  = 313
+	SYS_MLOCK                   = 314
+	SYS_MUNLOCK                 = 315
+	SYS_MLOCKALL                = 316
+	SYS_MUNLOCKALL              = 317
+	SYS_SYSINFO                 = 318
+	SYS_OLDUMOUNT               = 321
+	SYS_SWAPON                  = 322
+	SYS_TIMES                   = 323
+	SYS_PERSONALITY             = 324
+	SYS_SETFSUID                = 325
+	SYS_SETFSGID                = 326
+	SYS_USTAT                   = 327
+	SYS_STATFS                  = 328
+	SYS_FSTATFS                 = 329
+	SYS_SCHED_SETPARAM          = 330
+	SYS_SCHED_GETPARAM          = 331
+	SYS_SCHED_SETSCHEDULER      = 332
+	SYS_SCHED_GETSCHEDULER      = 333
+	SYS_SCHED_YIELD             = 334
+	SYS_SCHED_GET_PRIORITY_MAX  = 335
+	SYS_SCHED_GET_PRIORITY_MIN  = 336
+	SYS_SCHED_RR_GET_INTERVAL   = 337
+	SYS_AFS_SYSCALL             = 338
+	SYS_UNAME                   = 339
+	SYS_NANOSLEEP               = 340
+	SYS_MREMAP                  = 341
+	SYS_NFSSERVCTL              = 342
+	SYS_SETRESUID               = 343
+	SYS_GETRESUID               = 344
+	SYS_PCICONFIG_READ          = 345
+	SYS_PCICONFIG_WRITE         = 346
+	SYS_QUERY_MODULE            = 347
+	SYS_PRCTL                   = 348
+	SYS_PREAD64                 = 349
+	SYS_PWRITE64                = 350
+	SYS_RT_SIGRETURN            = 351
+	SYS_RT_SIGACTION            = 352
+	SYS_RT_SIGPROCMASK          = 353
+	SYS_RT_SIGPENDING           = 354
+	SYS_RT_SIGTIMEDWAIT         = 355
+	SYS_RT_SIGQUEUEINFO         = 356
+	SYS_RT_SIGSUSPEND           = 357
+	SYS_SELECT                  = 358
+	SYS_GETTIMEOFDAY            = 359
+	SYS_SETTIMEOFDAY            = 360
+	SYS_GETITIMER               = 361
+	SYS_SETITIMER               = 362
+	SYS_UTIMES                  = 363
+	SYS_GETRUSAGE               = 364
+	SYS_WAIT4                   = 365
+	SYS_ADJTIMEX                = 366
+	SYS_GETCWD                  = 367
+	SYS_CAPGET                  = 368
+	SYS_CAPSET                  = 369
+	SYS_SENDFILE                = 370
+	SYS_SETRESGID               = 371
+	SYS_GETRESGID               = 372
+	SYS_DIPC                    = 373
+	SYS_PIVOT_ROOT              = 374
+	SYS_MINCORE                 = 375
+	SYS_PCICONFIG_IOBASE        = 376
+	SYS_GETDENTS64              = 377
+	SYS_GETTID                  = 378
+	SYS_READAHEAD               = 379
+	SYS_TKILL                   = 381
+	SYS_SETXATTR                = 382
+	SYS_LSETXATTR               = 383
+	SYS_FSETXATTR               = 384
+	SYS_GETXATTR                = 385
+	SYS_LGETXATTR               = 386
+	SYS_FGETXATTR               = 387
+	SYS_LISTXATTR               = 388
+	SYS_LLISTXATTR              = 389
+	SYS_FLISTXATTR              = 390
+	SYS_REMOVEXATTR             = 391
+	SYS_LREMOVEXATTR            = 392
+	SYS_FREMOVEXATTR            = 393
+	SYS_FUTEX                   = 394
+	SYS_SCHED_SETAFFINITY       = 395
+	SYS_SCHED_GETAFFINITY       = 396
+	SYS_TUXCALL                 = 397
+	SYS_IO_SETUP                = 398
+	SYS_IO_DESTROY              = 399
+	SYS_IO_GETEVENTS            = 400
+	SYS_IO_SUBMIT               = 401
+	SYS_IO_CANCEL               = 402
+	SYS_IO_PGETEVENTS           = 403
+	SYS_RSEQ                    = 404
+	SYS_EXIT_GROUP              = 405
+	SYS_LOOKUP_DCOOKIE          = 406
+	SYS_EPOLL_CREATE            = 407
+	SYS_EPOLL_CTL               = 408
+	SYS_EPOLL_WAIT              = 409
+	SYS_REMAP_FILE_PAGES        = 410
+	SYS_SET_TID_ADDRESS         = 411
+	SYS_RESTART_SYSCALL         = 412
+	SYS_FADVISE64               = 413
+	SYS_TIMER_CREATE            = 414
+	SYS_TIMER_SETTIME           = 415
+	SYS_TIMER_GETTIME           = 416
+	SYS_TIMER_GETOVERRUN        = 417
+	SYS_TIMER_DELETE            = 418
+	SYS_CLOCK_SETTIME           = 419
+	SYS_CLOCK_GETTIME           = 420
+	SYS_CLOCK_GETRES            = 421
+	SYS_CLOCK_NANOSLEEP         = 422
+	SYS_SEMTIMEDOP              = 423
+	SYS_TGKILL                  = 424
+	SYS_STAT64                  = 425
+	SYS_LSTAT64                 = 426
+	SYS_FSTAT64                 = 427
+	SYS_VSERVER                 = 428
+	SYS_MBIND                   = 429
+	SYS_GET_MEMPOLICY           = 430
+	SYS_SET_MEMPOLICY           = 431
+	SYS_MQ_OPEN                 = 432
+	SYS_MQ_UNLINK               = 433
+	SYS_MQ_TIMEDSEND            = 434
+	SYS_MQ_TIMEDRECEIVE         = 435
+	SYS_MQ_NOTIFY               = 436
+	SYS_MQ_GETSETATTR           = 437
+	SYS_WAITID                  = 438
+	SYS_ADD_KEY                 = 439
+	SYS_REQUEST_KEY             = 440
+	SYS_KEYCTL                  = 441
+	SYS_IOPRIO_SET              = 442
+	SYS_IOPRIO_GET              = 443
+	SYS_INOTIFY_INIT            = 444
+	SYS_INOTIFY_ADD_WATCH       = 445
+	SYS_INOTIFY_RM_WATCH        = 446
+	SYS_FDATASYNC               = 447
+	SYS_KEXEC_LOAD              = 448
+	SYS_MIGRATE_PAGES           = 449
+	SYS_OPENAT                  = 450
+	SYS_MKDIRAT                 = 451
+	SYS_MKNODAT                 = 452
+	SYS_FCHOWNAT                = 453
+	SYS_FUTIMESAT               = 454
+	SYS_FSTATAT64               = 455
+	SYS_UNLINKAT                = 456
+	SYS_RENAMEAT                = 457
+	SYS_LINKAT                  = 458
+	SYS_SYMLINKAT               = 459
+	SYS_READLINKAT              = 460
+	SYS_FCHMODAT                = 461
+	SYS_FACCESSAT               = 462
+	SYS_PSELECT6                = 463
+	SYS_PPOLL                   = 464
+	SYS_UNSHARE                 = 465
+	SYS_SET_ROBUST_LIST         = 466
+	SYS_GET_ROBUST_LIST         = 467
+	SYS_SPLICE                  = 468
+	SYS_SYNC_FILE_RANGE         = 469
+	SYS_TEE                     = 470
+	SYS_VMSPLICE                = 471
+	SYS_MOVE_PAGES              = 472
+	SYS_GETCPU                  = 473
+	SYS_EPOLL_PWAIT             = 474
+	SYS_UTIMENSAT               = 475
+	SYS_SIGNALFD                = 476
+	SYS_TIMERFD                 = 477
+	SYS_EVENTFD                 = 478
+	SYS_RECVMMSG                = 479
+	SYS_FALLOCATE               = 480
+	SYS_TIMERFD_CREATE          = 481
+	SYS_TIMERFD_SETTIME         = 482
+	SYS_TIMERFD_GETTIME         = 483
+	SYS_SIGNALFD4               = 484
+	SYS_EVENTFD2                = 485
+	SYS_EPOLL_CREATE1           = 486
+	SYS_DUP3                    = 487
+	SYS_PIPE2                   = 488
+	SYS_INOTIFY_INIT1           = 489
+	SYS_PREADV                  = 490
+	SYS_PWRITEV                 = 491
+	SYS_RT_TGSIGQUEUEINFO       = 492
+	SYS_PERF_EVENT_OPEN         = 493
+	SYS_FANOTIFY_INIT           = 494
+	SYS_FANOTIFY_MARK           = 495
+	SYS_PRLIMIT64               = 496
+	SYS_NAME_TO_HANDLE_AT       = 497
+	SYS_OPEN_BY_HANDLE_AT       = 498
+	SYS_CLOCK_ADJTIME           = 499
+	SYS_SYNCFS                  = 500
+	SYS_SETNS                   = 501
+	SYS_ACCEPT4                 = 502
+	SYS_SENDMMSG                = 503
+	SYS_PROCESS_VM_READV        = 504
+	SYS_PROCESS_VM_WRITEV       = 505
+	SYS_KCMP                    = 506
+	SYS_FINIT_MODULE            = 507
+	SYS_SCHED_SETATTR           = 508
+	SYS_SCHED_GETATTR           = 509
+	SYS_RENAMEAT2               = 510
+	SYS_GETRANDOM               = 511
+	SYS_MEMFD_CREATE            = 512
+	SYS_EXECVEAT                = 513
+	SYS_SECCOMP                 = 514
+	SYS_COPY_FILE_RANGE         = 515
+	SYS_PREADV2                 = 516
+	SYS_PWRITEV2                = 517
+	SYS_STATX                   = 518
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sw64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sw64.go
new file mode 100644
index 0000000..16a90cf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sw64.go
@@ -0,0 +1,687 @@
+// cgo -godefs -objdir=/tmp/sw64/cgo -- -Wall -Werror -static -I/tmp/sw64/include /home/zhangjh/git-source/go/sys/unix/linux/types.go | go run mkpost.go
+// Code generated by the command above; see README.md. DO NOT EDIT.
+
+//go:build sw64 && 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
+	Rdev    uint64
+	Size    int64
+	Blocks  uint64
+	Mode    uint32
+	Uid     uint32
+	Gid     uint32
+	Blksize uint32
+	Nlink   uint32
+	_       int32
+	Atim    Timespec
+	Mtim    Timespec
+	Ctim    Timespec
+	_       [3]int64
+}
+
+type Dirent struct {
+	Ino    uint64
+	Off    int64
+	Reclen uint16
+	Type   uint8
+	Name   [256]int8
+	_      [5]byte
+}
+
+type Flock_t struct {
+	Type   int16
+	Whence int16
+	Start  int64
+	Len    int64
+	Pid    int32
+	_      [4]byte
+}
+
+type DmNameList struct {
+	Dev  uint64
+	Next uint32
+	Name [0]byte
+	_    [4]byte
+}
+
+const (
+	FADV_DONTNEED   = 0x4
+	FADV_NOREUSE    = 0x5
+)
+
+type RawSockaddrNFCLLCP struct {
+	Sa_family        uint16
+	Dev_idx          uint32
+	Target_idx       uint32
+	Nfc_protocol     uint32
+	Dsap             uint8
+	Ssap             uint8
+	Service_name     [63]uint8
+	Service_name_len uint64
+}
+
+type RawSockaddr struct {
+	Family uint16
+	Data   [14]int8
+}
+
+type RawSockaddrAny struct {
+	Addr RawSockaddr
+	Pad  [96]int8
+}
+
+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
+}
+
+type ifreq struct {
+	Ifrn [16]byte
+	Ifru [24]byte
+}
+
+const (
+	SizeofSockaddrNFCLLCP   = 0x60
+	SizeofIovec             = 0x10
+	SizeofMsghdr            = 0x38
+	SizeofCmsghdr           = 0x10
+)
+
+const (
+	SizeofSockFprog  = 0x10
+)
+
+type PtraceRegs struct{}
+
+type FdSet struct {
+	Bits [16]int64
+}
+
+type Sysinfo_t struct {
+	Uptime    int64
+	Loads     [3]uint64
+	Totalram  uint64
+	Freeram   uint64
+	Sharedram uint64
+	Bufferram uint64
+	Totalswap uint64
+	Freeswap  uint64
+	Procs     uint16
+	Pad       uint16
+	Totalhigh uint64
+	Freehigh  uint64
+	Unit      uint32
+	_         [0]int8
+	_         [4]byte
+}
+
+type Ustat_t struct {
+	Tfree  int32
+	Tinode uint64
+	Fname  [6]int8
+	Fpack  [6]int8
+	_      [4]byte
+}
+
+type EpollEvent struct {
+	Events uint32
+	_      int32
+	Fd     int32
+	Pad    int32
+}
+
+const (
+	OPEN_TREE_CLOEXEC = 0x200000
+)
+
+const (
+	POLLRDHUP = 0x2000
+)
+
+type Sigset_t struct {
+	Val [16]uint64
+}
+
+const _C__NSIG = 0x41
+
+const (
+	SIG_BLOCK   = 0x1
+	SIG_UNBLOCK = 0x2
+	SIG_SETMASK = 0x3
+)
+
+
+type Siginfo struct {
+	Signo int32
+	Errno int32
+	Code  int32
+	_     int32
+	_     [112]byte
+}
+
+type Termios struct {
+	Iflag  uint32
+	Oflag  uint32
+	Cflag  uint32
+	Lflag  uint32
+	Cc     [19]uint8
+	Line   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]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
+	Compact_count             uint64
+	Compact_delay_total       uint64
+	Ac_tgid                   uint32
+	Ac_tgetime                uint64
+	Ac_exe_dev                uint64
+	Ac_exe_inode              uint64
+	Wpcopy_count              uint64
+	Wpcopy_delay_total        uint64
+	Irq_count                 uint64
+	Irq_delay_total           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
+	Data   [118]byte
+	_      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                  = 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 PPSKInfo struct {
+        Assert_sequence uint32
+        Clear_sequence  uint32
+        Assert_tu       PPSKTime
+        Clear_tu        PPSKTime
+        Current_mode    int32
+        _               [4]byte
+}
+
+const (
+	PPS_GETPARAMS = 0x400870a1
+	PPS_SETPARAMS = 0x800870a2
+	PPS_GETCAP    = 0x400870a3
+	PPS_FETCH     = 0xc00870a4
+)
+
+const (
+	PIDFD_NONBLOCK = 0x4
+)
+
+type SysvIpcPerm struct {
+	Key  int32
+	Uid  uint32
+	Gid  uint32
+	Cuid uint32
+	Cgid uint32
+	Mode uint32
+	_    [0]uint8
+	Seq  uint16
+	_    uint16
+	_    uint64
+	_    uint64
+}
+type SysvShmDesc struct {
+	Perm   SysvIpcPerm
+	Segsz  uint64
+	Atime  int64
+	Dtime  int64
+	Ctime  int64
+	Cpid   int32
+	Lpid   int32
+	Nattch uint64
+	_      uint64
+	_      uint64
+}
-- 
2.39.3

